[Tutor] 'elp!!!!!!!1Totally Clueless Newbie In Distress
Geoframer
geoframer at gmail.com
Fri Jan 19 15:00:52 CET 2007
Alright this code is actually littered with bugs, but don't feel bad,
because as you state you are new to the whole programming thing. I'll try to
explain the things i see going wrong (please take into account that i'm also
a new pythonist ;-))
***
You get the error 'variable undefined' because you are declaring a global in
an incorrect manner. The correct manner is to define the variable in the
global scope then start a definition, declare that you are using a global
variable and then assign it. Like this :
bla = 'Hello world'
def func():
global bla
print bla
***
If you do :
porao = raw_input()
You'll define the integer value as a string, not an integer. If you are sure
that only an integer will be entered use input() (slower) or
int(raw_input()). In either case you should use try and except clauses more
in your code because if not a 1 or 4 is entered your code will continue
without having the variables declared! Leading to other errors.
***
Now suppose you get the definitions using globals correct then you'll get
new errors stating that an 'int' is not callable.
This happens because you define for example altura as an integer and then
also define a function called altura. If you now use :
altura()
It'll try to call the integer object and will fail.
Easy solution would be to make the function something like alturadef()
***
As for your identation you should use consistent identation... I suggest
using python -t or python -tt to compile your script and it will give
warnings/errors where the identation goes wrong.
***
Here's how i altered your code (quick and dirty probably, it should be more
clean using try and except clauses and what not) to get it to work but you
can probably better look that up in a python book and then return to the
list if you don't understand it :
#Ok,this is supposed to be a 2 option choice between values 1 and 4,
#i want the value to determine the variable values inside the function
altura_aeronave = 0
largura_aeronave = 0
comprimento_aeronave = 0
comprimento = 0
largura = 0
altura = 0
def porao():
global altura_aeronave, largura_aeronave, comprimento
porao = input()
if porao == 1 :
altura_aeronave = 111
largura_aeronave = 112
comprimento = 211
elif porao == 4:
altura_aeronave = 112
largura_aeronave = 113
comprimento = 212
else:
print "Porão inexistente"
#These three functions were supposed to get input from user so it can be
compared
#with the values determinated(determined?)above
def larguradef():
global largura
largura=input()
def alturadef():
global altura
altura=input()
def comprimentodef():
global comprimento
comprimento = input()
#These are the comparison functions
def largura_compativel ():
global largura, largura_aeronave
if not largura <= largura_aeronave:
print 'Volume largo demais!'
def altura_compativel ():
global altura, altura_aeronave
if not altura <= altura_aeronave:
print 'Volume alto demais!'
def comprimento_compativel ():
global comprimento, comprimento_aeronave
if not comprimento<=comprimento_aeronave:
print 'Volume comprido demais!'
#Try to run this damn thing,man!!!!!1
porao()
#print altura_aeronave, largura_aeronave, comprimento
larguradef()
alturadef()
comprimentodef()
largura_compativel()
altura_compativel
comprimento_compativel()
On 1/19/07, Karl Wittgenstein <miago.python at gmail.com> wrote:
>
> Dear Smart Caring Dude,
> I've been dabbling into Python for about 6 weeks now.I'm a Social Sciences
> student who just got interested in programming and chose Python as first
> language.I have little time to practice and I am just getting into
> programming concepts,so please be patient,in case you are so kind as to
> enlighten this poor soul.
> I am trying to write this program which should compare values that are set
> by the program through user's choice to values that the user enters on a
> prompt.I use SPE on windows xp,and it tells me that there are indentation
> erros on the definitions.Isn't it legal to start a new block of code when
> starting a definition?And how come it returns 'variable' not defined,when
> they are defined by the = ??Should i make them global?
> I would be very grateful to the patient soul that answers these
> questions,as my learning interest is sincere and the knowledge sources so
> disperse.
> Here goes the code:
>
> #Ok,this is supposed to be a 2 option choice between values 1 and 4,
> #i want the value to determine the variable values inside the function
> def porao():
> porao = raw_input()
> if porao == 1 :
> global altura_aeronave = 111
> global largura_aeronave = 112
> global comprimento = 211
> elif porao == 4:
> global altura_aeronave = 112
> global largura_aeronave = 113
> global comprimento = 212
> else:
> print "Porão inexistente"
> #These three functions were supposed to get input from user so it can be
> compared
> #with the values determinated(determined?)above
> def largura():
> global largura=input()
> def altura():
> global altura=input()
> def comprimento():
> global comprimento = input()
> #These are the comparison functions
> def largura_compativel ():
> if not largura <= largura_aeronave:
> print 'Volume largo demais!'
> def altura_compativel ():
> if not altura <= altura_aeronave:
> print 'Volume alto demais!'
> def comprimento_compativel ():
> if not comprimento<=comprimento_aeronave:
> print 'Volume comprido demais!'
> #Try to run this damn thing,man!!!!!1
> porao()
> largura()
> altura()
> comprimento()
> largura_compativel()
> altura_compativel
> comprimento_compativel()
>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070119/c7a34067/attachment-0001.htm
More information about the Tutor
mailing list