easy question, how to double a variable

19 views
Skip to first unread message

daggerdvm

unread,
Sep 20, 2009, 4:27:07 PM9/20/09
to
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

MRAB

unread,
Sep 20, 2009, 4:55:48 PM9/20/09
to pytho...@python.org

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

Tim Chase

unread,
Sep 20, 2009, 5:00:24 PM9/20/09
to daggerdvm, pytho...@python.org

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


Steven D'Aprano

unread,
Sep 21, 2009, 12:08:07 AM9/21/09
to

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,

--
Steven

Carl Banks

unread,
Sep 21, 2009, 4:17:22 AM9/21/09
to

Simple:

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


Carl Banks

Tim Chase

unread,
Sep 21, 2009, 5:04:06 AM9/21/09
to Steven D'Aprano, pytho...@python.org
Steven D'Aprano wrote:
>> 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):
[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

David C Ullrich

unread,
Sep 21, 2009, 2:50:23 PM9/21/09
to
On Sun, 20 Sep 2009 13:27:07 -0700, daggerdvm wrote:

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.


daggerdvm

unread,
Sep 21, 2009, 4:46:31 PM9/21/09
to
u don't want to answer................then why post?...get lost.

daggerdvm

unread,
Sep 21, 2009, 4:49:50 PM9/21/09
to
you brain needs error checking!

daggerdvm

unread,
Sep 21, 2009, 4:50:31 PM9/21/09
to
carl banks.........you are a dork

Andreas Waldenburger

unread,
Sep 21, 2009, 5:36:39 PM9/21/09
to
On Mon, 21 Sep 2009 13:46:31 -0700 (PDT) daggerdvm
<dagg...@yahoo.com> wrote:

> 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

--
INVALID? DE!

Ethan Furman

unread,
Sep 21, 2009, 5:55:35 PM9/21/09
to pytho...@python.org
daggerdvm wrote:
> 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~

Sean DiZazzo

unread,
Sep 21, 2009, 6:40:09 PM9/21/09
to
On Sep 21, 1:46 pm, daggerdvm <dagger...@yahoo.com> wrote:
> u don't want to answer................then why post?...get lost.

I eat children...

Steven D'Aprano

unread,
Sep 21, 2009, 10:34:53 PM9/21/09
to
On Mon, 21 Sep 2009 13:50:23 -0500, David C Ullrich wrote:

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

What?

Seriously? You're not just yanking the OP's chain???


--
Steven
who normally does quite well detecting sarcasm in writing

Tim Chase

unread,
Sep 21, 2009, 10:50:13 PM9/21/09
to David C Ullrich, pytho...@python.org
> 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


Grant Edwards

unread,
Sep 21, 2009, 11:09:22 PM9/21/09
to

It's easy:

def twice(i):
return i
return i

--
Grant

Tim Roberts

unread,
Sep 22, 2009, 1:47:02 AM9/22/09
to
daggerdvm <dagg...@yahoo.com> wrote:
>
>carl banks.........you are a dork

What are you, eleven years old?

Look, you asked us to answer for you what is CLEARLY a homework question.
It is unethical for you to ask that, and it is unethical for us to answer
it.

As others have said, show us what you TRIED, and we can help you make it
work.
--
Tim Roberts, ti...@probo.com
Providenza & Boekelheide, Inc.

Processor-Dev1l

unread,
Sep 22, 2009, 2:04:06 AM9/22/09
to

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 :)))

Hendrik van Rooyen

unread,
Sep 22, 2009, 3:17:24 AM9/22/09
to daggerdvm, pytho...@python.org
On Monday, 21 September 2009 22:50:31 daggerdvm wrote:

> 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

Tim Chase

unread,
Sep 21, 2009, 5:38:26 PM9/21/09
to daggerdvm, pytho...@python.org
daggerdvm wrote:
> 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


Donn

unread,
Sep 22, 2009, 4:58:22 AM9/22/09
to pytho...@python.org
On Monday 21 September 2009 22:49:50 daggerdvm wrote:
> you brain needs error checking!
try:
return response()
except Troll,e:
raise dontFeed(anymore=True)

\d
--
home: http://otherwise.relics.co.za/
2D vector animation : https://savannah.nongnu.org/projects/things/
Font manager : https://savannah.nongnu.org/projects/fontypython/

koranthala

unread,
Sep 22, 2009, 7:14:47 AM9/22/09
to

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.

Mel

unread,
Sep 22, 2009, 9:01:43 AM9/22/09
to
Tim Roberts wrote:

> daggerdvm <dagg...@yahoo.com> wrote:
>>
>>carl banks.........you are a dork
>
> What are you, eleven years old?
>
> Look, you asked us to answer for you what is CLEARLY a homework question.
> It is unethical for you to ask that, and it is unethical for us to answer
> it.

Forget ethical. We can do his homework for him, we can perhaps pass exams
for him, maybe graduate for him, and then with our luck, he'll get a job in
our office and we get to do his work for him.

Mel.


Ben Finney

unread,
Sep 22, 2009, 9:04:14 AM9/22/09
to
Mel <mwi...@the-wire.com> writes:

> Tim Roberts wrote:
> > Look, you asked us to answer for you what is CLEARLY a homework
> > question. It is unethical for you to ask that, and it is unethical
> > for us to answer it.
>
> Forget ethical. We can do his homework for him, we can perhaps pass
> exams for him, maybe graduate for him, and then with our luck, he'll
> get a job in our office and we get to do his work for him.

+1 QOTW

--
\ “Special today: no ice cream.” —mountain inn, Switzerland |
`\ |
_o__) |
Ben Finney

Grant Edwards

unread,
Sep 22, 2009, 9:57:39 AM9/22/09
to

No, no, no. The plan is to do his homework for him so that
he's incompetent when he graduates and won't be competition for
the rest of us who did do our homework.

--
Grant Edwards grante Yow! ... the HIGHWAY is
at made out of LIME JELLO and
visi.com my HONDA is a barbequeued
OYSTER! Yum!

Hyuga

unread,
Sep 22, 2009, 10:41:11 AM9/22/09
to
On Sep 22, 9:57 am, Grant Edwards <inva...@invalid.invalid> wrote:

> On 2009-09-22, Mel <mwil...@the-wire.com> wrote:
>
> > Tim Roberts wrote:
>
> >> daggerdvm <dagger...@yahoo.com> wrote:
>
> >>>carl banks.........you are a dork
>
> >> What are you, eleven years old?
>
> >> Look, you asked us to answer for you what is CLEARLY a homework question.
> >> It is unethical for you to ask that, and it is unethical for us to answer
> >> it.
>
> > Forget ethical.  We can do his homework for him, we can perhaps pass exams
> > for him, maybe graduate for him, and then with our luck, he'll get a job in
> > our office and we get to do his work for him.
>
> No, no, no.  The plan is to do his homework for him so that
> he's incompetent when he graduates and won't be competition for
> the rest of us who did do our homework.

Well, while they may not be as much competition come promotion time, I
think Mr. Finney had it right that these people *do* still somehow get
hired, and then the rest of us end up having to do enough work for
multiple people. Sometimes spending more time redoing other peoples'
shoddy work than it would have taken to do ourselves in the first
place. Annoying for the programmer, but really bad for business.

Steven D'Aprano

unread,
Sep 22, 2009, 7:30:51 PM9/22/09
to
On Tue, 22 Sep 2009 07:41:11 -0700, Hyuga wrote:

>> > Forget ethical.  We can do his homework for him, we can perhaps pass
>> > exams for him, maybe graduate for him, and then with our luck, he'll
>> > get a job in our office and we get to do his work for him.
>>
>> No, no, no.  The plan is to do his homework for him so that he's
>> incompetent when he graduates and won't be competition for the rest of
>> us who did do our homework.
>
> Well, while they may not be as much competition come promotion time, I
> think Mr. Finney had it right that these people *do* still somehow get
> hired

...


It was Mel Wilson, not Ben Finney, who write the paragraph starting with
"Forget ethical".


--
Steven

Rhodri James

unread,
Sep 22, 2009, 6:40:57 PM9/22/09
to pytho...@python.org
On Mon, 21 Sep 2009 21:49:50 +0100, daggerdvm <dagg...@yahoo.com> wrote:

> you brain needs error checking!

Your post, by contrast, needs grammar checking.

--
Rhodri James *-* Wildebeest Herder to the Masses

Message has been deleted

David C Ullrich

unread,
Sep 23, 2009, 2:36:44 PM9/23/09
to
On Tue, 22 Sep 2009 02:34:53 +0000, Steven D'Aprano wrote:

> On Mon, 21 Sep 2009 13:50:23 -0500, David C Ullrich wrote:
>
>> But you actually want to return twice the value. I don't see how to do
>> that.
>
> What?
>
> Seriously?

You're saying it _can_ be done in Python? They must have added
something to the standard library again. I mean how can you return
twice a value without a twice function to start with? I've tried.
You'd think

def twice(n):
return twice(n)

would work, but I get this really long error message.

> You're not just yanking the OP's chain???

That would be cruel. I mean the guy has enough problems already...


Iain King

unread,
Sep 24, 2009, 6:51:21 AM9/24/09
to

Sorry, there is no 'twice' builtin. I think what you are looking for
is:

def twice(n):
return return n


Iain

Pablo Torres N.

unread,
Sep 24, 2009, 9:32:58 AM9/24/09
to

Actually, what he wants is:

(def twice (x)
(+ (once x) (once x)))

Message has been deleted

devilkin

unread,
Sep 25, 2009, 1:33:57 AM9/25/09
to
On 9月22日, 上午4时49分, daggerdvm <dagger...@yahoo.com> wrote:
> you brain needs error checking!

this kid knows error checking...may be he know exceptions as well

Albert van der Horst

unread,
Oct 2, 2009, 8:08:33 AM10/2/09
to
In article <fa454992-d61a-4fb7...@e18g2000vbe.googlegroups.com>,

daggerdvm <dagg...@yahoo.com> wrote:
>you brain needs error checking!

Whose brain? At least I know this:

Your brain is beyond repair. Go for a brain transplant.

Groetjes Albert

--
--
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Chris Colbert

unread,
Oct 2, 2009, 8:29:52 AM10/2/09
to Albert van der Horst, pytho...@python.org
I come from a scientific background, so my approach to the solution of
this problem is a little different.

It makes use of some numerical approximations, but that's not
necessarily a bad thing, because it helps avoid singularities. So it
could be a little more robust than other solutions presented here.

It also has a little more functionality: Say you wanted to return
three times a variable, you wouldnt want to write another function to
do that for you, so now you just pass in how many times you want the
variable repeated as the first parameter.

Hope this helps! Cheers!

import math

def repeat(how_many_times, x):
def f(n):
return 1./(2**n)

def summation(func, howmany):
if howmany == 1:
return func(1)
else:
return func(howmany) + summation(func, howmany-1)

def eulerify(num):
return abs(math.cos(math.pi) + 1j*(math.sin(math.pi))) * num

def get_coefficient(multiplier):
return eulerify(multiplier * summation(f, 100))

return int(eulerify(get_coefficient(how_many_times) * x))

> --
> http://mail.python.org/mailman/listinfo/python-list
>

Tom Kermode

unread,
Dec 28, 2009, 6:42:06 AM12/28/09
to daggerdvm, pytho...@python.org
def twice(parameter = 2)
return 4

2009/9/20 daggerdvm <dagg...@yahoo.com>:


>  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

> --
> http://mail.python.org/mailman/listinfo/python-list
>

--
http://www.kiloday.com
http://www.fourstopspast.com

Reply all
Reply to author
Forward
0 new messages