easy question, how to double a variable

D

daggerdvm

Write the definition of a function twice , that receives an int
parameter and returns an int that is twice the value of the
parameter.

how can i do this
 
M

MRAB

daggerdvm said:
Write the definition of a function twice , that receives an int
parameter and returns an int that is twice the value of the
parameter.

how can i do this

That's a very basic question. Try a tutorial.
 
T

Tim Chase

daggerdvm said:
Write the definition of a function twice , that receives an int
parameter and returns an int that is twice the value of the
parameter.

how can i do this

Read over your textbook and the notes you took in class -- I'm
sure therein you'll find how to define functions, how to specify
parameters, how to return values, and how to do basic arithmetic
operations. You can also hit up python.org and
diveintopython.org for more reading if you need.

I'll give you a hint: If you use

twice = lambda x: int(x**2/(0.5*x))

I suspect your professor will flunk you for cheating.

-tkc
 
S

Steven D'Aprano

Write the definition of a function twice , that receives an int
parameter and returns an int that is twice the value of the parameter.

how can i do this

Yes, that certainly is an easy question.

Here's my solution:

class MultiplierFactory(object):
def __init__(self, factor=1):
self.__factor = factor
@property
def factor(self):
return getattr(self, '_%s__factor' % self.__class__.__name__)
def __call__(self, factor=None):
if not factor is not None is True:
factor = self.factor
class Multiplier(object):
def __init__(self, factor=None):
self.__factor = factor
@property
def factor(self):
return getattr(self,
'_%s__factor' % self.__class__.__name__)
def __call__(self, n):
return self.factor*n
Multiplier.__init__.im_func.func_defaults = (factor,)
return Multiplier(factor)

twice = MultiplierFactory(2)()


It needs some error checking, but otherwise should work.


Ever-helpful-ly y'rs,
 
C

Carl Banks

 Write the definition of a function  twice , that receives an  int
parameter and returns an  int that is twice the value of the
parameter.

how can i do this

Simple:

Once you define the function, "copy" it using your editor commands,
then "paste" it right below the original.


Carl Banks
 
T

Tim Chase

Steven said:
Yes, that certainly is an easy question.

Here's my solution:

class MultiplierFactory(object):
[snip a marvel of abstruse code]
twice = MultiplierFactory(2)()

It needs some error checking, but otherwise should work.

Tsk...no docstrings? no unit tests or doctests? no parameter
validation? no copyright notice? no revision-tracking nor
authorship comments? what sort of bad example are you setting
here? You want this kid to fail?! With such poor instruction,
it's no wonder the economy is going to shambles, the educational
system is falling apart, there's global warming, terrorism, spam,
and reality television. Your piteous code make Paris Hilton cry.
[shakes head in disappointment]

;-)

-tkc
 
A

Andreas Waldenburger

u don't want to answer................then why post?...get lost.

You're not doing yourself a favor with this attitude, much less
displaying it. You asked a question that you could have solved with 1
hour's worth of reading at most (much less if you're actually attending
some sort of class for this).

I'm not saying you deserve to be mocked, but it is a fact of life that
you get these responses when it is apparent that you put almost no
effort into this problem.

Here's a tip: post to the group your code that you came up with
yourself and explain what gives you trouble. I assure you, the
responses will be more helpful that way.

/W
 
T

Tim Chase

daggerdvm said:
what are you retarded? this is not a test you moron, i can ask all
the questions i want about it.

You seem to have forgotten to CC the list. Let me help show the
world your "mad skillz" -- at replying, at programming, at
orthography, at interpersonal communication...

Sure you can ask all the questions you want...and the newsgroup
can give all the answers it sees fit. In all likelihood, your
professor wanted *you* to solve the problem, not have
comp.lang.python solve the problem for you. You got at least two
answers that "solve" the problem, but were designed to clearly
indicated to the professor that you didn't author them yourself.

From my experience teaching students to program, that's the sort
of problem that 4th or 5th graders (who have been paying
attention in class) should be able to do with no need to ask for
help.

Given that you made *no* effort (your post had *zero* code to
show you had even attempted the problem), you got back far more
than you put in.

-tkc
 
E

Ethan Furman

daggerdvm said:
u don't want to answer................then why post?...get lost.

On the contrary! We *do* want to answer. Prizes are awarded based on
the most outlandish yet correct answer, on the most literal answer, and
on the funniest answer!

Ridiculous questions like yours are what make the daily checking of the
mailing list worth while.

Now, if you have a _real_ question, that's not homework, check out
http://catb.org/~esr/faqs/smart-questions.html and then try again.

Happy Coding!

~Ethan~
 
T

Tim Chase

But you actually want to return twice the value. I don't see
how to do that.


Ah, I think I see...returning more than once is done with the
"yield" keyword:

def f(param):
yield param
yield param

That returns twice the integer parameter... :-D

However, the OP was instructed to "Write the definition of a
function twice" which means I'd have to copy & paste the final
function definition a second time to make sure it was done twice
(as Carl suggested).

Then again as David notices, the subject lines asks how to double
a variable, in which case one might want

import struct
def f(param):
return struct.pack('f', param)

which doubles the parameter... :-S

-tkc
 
G

Grant Edwards

I don't think this can be done in Python.

Looking at the Subject line I thought your problem was going
to be easy: There's only one float type in Python, so at least
in most implementations simply converting to float will
suffice to "double" a variable.

But you actually want to return twice the value. I don't see
how to do that.

It's easy:

def twice(i):
return i
return i
 
P

Processor-Dev1l

 Write the definition of a function  twice , that receives an  int
parameter and returns an  int that is twice the value of the
parameter.

how can i do this

I will stop this theatre...
as you should know, you want your function to make arithmetic
operation n*2.
Everything you have to do is to define some function with parameter n
and make this function to return n*2.
If you are not jerk, you can make the whole code you need from the
previous sentence :)))
 
H

Hendrik van Rooyen

carl banks.........you are a dork

No mister_do_my_homework, he is not.
He is actually a respected member
of this little community.

You, however, are beginning to look like one.

Why do you not come clean - tell us what you are doing,
show us what you have tried, and maybe, just maybe,
some kind soul will help you, instead of mocking you.

Although that is now less likely as you have started calling
people derogatory names.

And if you do not at least do what I have suggested, there is about a
snowball's hope in hell of anybody helping you, as you come across as a
parasite who wants other people to do his work.

Prove you are not, or go away.

- Hendrik
 
K

koranthala

 Write the definition of a function  twice , that receives an  int
parameter and returns an  int that is twice the value of the
parameter.

how can i do this

Please note that most mails here are humorous - as should be expected
for a language named after Monty Python.
So, please do not get angry and do take it the way it was intended.

The main problem that everybody sees is that the code you asked is
extremely simple. This causes others to think that you have not
invested any time in getting a solution yourself. Most of us here are
30 years old, and we know from experience that if one does not invest
time and energy in solving issues when we are young, it eventually
leads us to a very unrewarding and unhappy life in the end.

So, even though it looks to you that people are mocking you, it is not
exactly the case. If you do try to get a solution and is unable to do
so, then I am 100% sure that many many people would have provided you
the answer or the way to do so.

Also, since you are young (presumably), it would be good to understand
that if you get it into a flamewar (email or in life), it tends to end
bad for you in the end. Esp, MRAB, Carl Banks, Steven D'Aprano, Tim
Chase etc , whom you flamed, are amongst the most respected people in
this group.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top