Why do I get this error?
Rainy
sill at optonline.net
Sat May 19 03:51:27 EDT 2001
On Sat, 19 May 2001 01:14:46 GMT, the_2nd_coming <jpetzold at twmi.rr.com> wrote:
> hello,
>
> I am writing a program and the interpreter give me an error of:
>
>
> Traceback (most recent call last):
> File "mycalc.py", line 41, in ?
> fix_expression(list)
> File "mycalc.py", line 26, in fix_expression
> n2 = list[1]
> IndexError: list index out of range
>
> hear is the source:
>
> import string
>
> def evaluate(list):
> num1 = list[0]
> num2 = list[2]
> operator = list[1]
>
> if operator == '+':
> answer = num1 + num2
> elif operator == '-':
> answer = num1 - num2
> elif operator == 'X' or 'x' or '*':
> answer = num1*num2
> elif operator == '/':
> answer = num1 / num2
> else:
> print 'invalid operator'
> format = "the answer to %d%c%d is %d" % (num1, operator, num2, answer)
>
> return format
>
> def fix_expression(list):
> l = []
> n1 = list[0]
> n2 = list[1]
> n3 = list[2]
> l.append(n1)
> l.append(n2)
> l.append(n3)
> evaluate(l)
> return format #needed to send format to main program from evaluate()
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - - - - - - - - - - - - - - - - - -
> expression = raw_input('please enter your singel operator expression')
> string.strip(expression) # get rid of all leading and trailing white space#
> list = string.split(expression)
>
> if len(list) >1:
> evaluate(list)
^
Aside from things other people noted, change that to print evaluate(list)
> elif len(list) == 1:
> fix_expression(list)
> else:
> print 'um, you were spose to enter somthing dumbass'
>
> print format #found in the evaluate function
This will give an error because there is no variable 'format' in global scope,
so you should delete that line.
>
>
>
> why is it telling me the index is out of range?
>
> thanks for your help
>
> Jeremy
--
Jupiter and Saturn Oberon Miranda
And Titania Neptune Titan
Stars can frighten
- Syd
More information about the Python-list
mailing list