> Alright i have been trying to right a (relatively) simple to calculate area > and volume below is my current working code > def areamenu(): > print 'Square (1)' > print 'triangle (2)' > print 'rectangle (3)' > print 'trapazoid (4)' > print 'circle (5)' > > def squareacalc(): > sidelength = input('enter side length: ') > print ' the side length is' sidelength ** 2 > > def displaymenu(): > print 'please make a selection'; > print 'Area (1)'; > choice = input(raw_input('enter selection number'):
You're missing a closing parenthesis here. But see comments below. > if (choice == 1): > Areamenu(): > > else: > print 'choice' , choice, ' is wrong try again' > > def selctiona(): > Areamenu(); > choicea = input(raw_input'enter selection'); And here you're missing an openening parenthesis. > if (choicea == 1): > squareacalc() > > > > print 'good bye' > > I keep getting this error > Traceback (most recent call last): > File "<pyshell#3>", line 1, in <module> > import Area > File "C:\Python27\Area.py", line 10 > areamenu() > ^ > SyntaxError: invalid syntax > > can anyone tell me what im doing wrong i cant see the problem > help would be appreciated A syntax error is often a typing error in the code. In this case, forgotten parentheses, but could be forgotten colons or an unclosed string. The parentheses problem can often be caught by using a good editor: these often lightlight when you close a set of parentheses, so you can spot syntax errors while you are typing. There are a number of other things wrong here, though. Style-wise: Python does not need (and prefers not to have) closing semicolons. In addition, there is no need to surround if statements with parentheses: "if choice == 1:" is perfectly fine and much more legible. Perhaps you think (coming from another language): "but it doesn't hurt, and I like it this way". But then you're still programming in that other language, and just translating to Python; not actually coding in Python. Also, this is odd, wrong and pretty bad: choice = input(raw_input('enter selection number')): Use either raw_input() (for Python 2.x) or input() (Python 3.x). It's wrong because you are waiting for input, then use that input as the next prompting string for further input. Like this >>> choice = input(raw_input('enter selection number')) enter selection number1 12 >>> print choice 2 (the 12 is the 1 I entered before, plus a 2 I just entered as a second entry.) So just use one function, and the appropriate one for the Python version. Lastly, choice will be a string, since input() and raw_input() return a string. In the if-statement, however, you are comparing that string to an integer. Python does not do implicit conversion, so you'll have to convert the string to an integer first, or compare to a string instead. (Something similar happens for the sidelength, btw.) Last thing I see glancing over the code: you define areamenu(), but call Areamenu(). Python is case sensitive, so you'd have to call areamenu() instead. This may be a bit more information than you asked for, but hopefully you don't mind. Good luck, Evert _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor