DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Python (http://www.daniweb.com/forums/forum114.html)
-   -   Python Beginner Help (Calculator) (http://www.daniweb.com/forums/thread128149.html)

inkcoder Jun 7th, 2008 3:50 am
Python Beginner Help (Calculator)
 
Hello Everyone,

I just joined here hoping to increase my knowledge at python. I have been beginning to learn this language as of yesterday. I have decided that if I really want to increase my knowledge I should start on a project. Well here is my first project, a simple calculator. But for whatever reason when I run the program I'm getting some strange errors... Whatever help and advice you guys could give me would be most appreciated!

#Calculator Test1

print "Calculator:"
print "1)+"
print "2)-"
print "3)*"
print "4)/"
print " "
print "Select Choice:"
op = input(">")
print " "

#Add
if op == "1":
    print "a + b"
    add1 = input("a:")
    add2 = input("b:")
    print "a + b =", add1+add2

#Sub
if op == "2":
    print "a - b"
    sub1 = input("a:")
    sub2 = input("b:")
    print "a - b =", sub1-sub2

#Multi
if op == "3":
    print "a * b"
    mul1 = input("a:")
    mul2 = input("b:")
    print "a * b =", mul1*mul2

#Div
if op == "4":
    print "a / b"
    div1 = input("a:")
    div2 = input("b:")
    print "a / b =", div1/div2

Thanks,
Inkcoder

slate Jun 7th, 2008 7:30 am
Re: Python Beginner Help (Calculator)
 
THe line:

op = input(">")

Takes the input AND evaluates it. That means inputing "1" results in eval("1") which is int("1').
Putting in something like "a" results in the interpreter looking for a name "a" and not finding it.

For the beginning I recommend to use:

op=raw_input(">")

sneekula Jun 7th, 2008 11:07 am
Re: Python Beginner Help (Calculator)
 
First, welcome to the forum!

What 'slate' is really telling you is that input() is for numbers and raw_input() is for strings. Using input() has certain risks since you can also enter a command and it will excute it.

Anyway, if you want to use
op = input(">")
then op will not be a string
and you have to use this if statement
if op == 1:

In the matter of fact, input() allows you to create this very simple calculator, since it evaluates mathematical expressions directly:
print "At the >> prompt enter x op y"
print "where x and y are numbers and op is"
print "-  +  /  *  **  //  for instance 12 * 9"
result = input(">> ")
print "result =", result


All times are GMT -4. The time now is 8:40 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC