[Tutor] urgent help!!!!!!!!!!!
ADRIAN KELLY
kellyadrian at hotmail.com
Fri Nov 18 00:26:52 CET 2011
i know i'm stupid but i have tried everything to get one line of text working, i have written out pseudo and read every website.....now i am getting this error............
Traceback (most recent call last): File "F:\VTOS ATHLONE\PYTHON_VTOS\foreign exchange\f_ex4 - Copy.py", line 24, in <module> main() File "F:\VTOS ATHLONE\PYTHON_VTOS\foreign exchange\f_ex4 - Copy.py", line 14, in main while amount<50:UnboundLocalError: local variable 'amount' referenced before assignment>>>
def exchange(cash_in): euro=1 dollar=1.35 base=50 if cash_in>base: totalreturn=cash_in*dollar else: totalreturn=0 return totalreturn
amount=0def main(): while amount<50: amount = raw_input(float('how much do you want to change:')) if amount<50: total=0 print 'enter an amount over 50: ' else: total=exchange(amount) print 'Your exchange comes to: ',total
Adrian Kelly
1 Bramble Close
Baylough
Athlone
County Westmeath
0879495663
From: waynejwerner at gmail.com
Date: Thu, 17 Nov 2011 16:53:59 -0600
Subject: Re: [Tutor] please help - stuck for hours
To: kellyadrian at hotmail.com
CC: tutor at python.org
On Thu, Nov 17, 2011 at 4:32 PM, ADRIAN KELLY <kellyadrian at hotmail.com> wrote:
thanks very much, great response really really appreciated it and now i understand. i hate to ask again but can you see why it won't print the 'enter and amount over 50' in the right place??
Computers are unfailingly stupid machines. They will do whatever wrong thing you tell them to do every single time.
<snip>def main(): amount=0 while amount<50: amount = input('how much do you want to change:')
print 'enter an amount over €50: ' else: total=exchange(amount) print 'Your exchange comes to: ',total
Sometimes it helps writing out the logic in steps before you translate it to code. In this case my guess is that these are the steps you want:
1. Get a value from the user (you're still using input - stop that, it's dangerous! input is only a good function in 3.x where it replaces raw_input)
2. If the value is less than 50, tell the user to enter an amount > 50 and repeat step 1
3. Otherwise, exchange the amount and display that.
Right now, these are the steps that you're doing:
1. Get a value from the user
2. Display the error message
3. If the value is < 50, go to 1
4. exchange the amount
5. display the amount.
HTH,Wayne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20111117/d524b8e4/attachment.html>
More information about the Tutor
mailing list