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 " "

if op == "1":
print "a + b"

#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

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:

## All 2 Replies

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(">")``
commented: nice help +8

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``````
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.