Hi Guys,

I'm a beginner programming with Python. This is my first program. The purpose of this program is to add two numbers and then give me the result. However, after that I want for it to ask me if I want to continue (y) or (n). I came with some difficulties and every change I make it gives me an error message. This is what I have so far.

print "Let's learn how to add"
x = int(input ("Give me the first number: "))
y = int(input ("Give me the second number: "))
print "The result is", (x+y)
userinput = input('Want to continue adding?\nA) Y\nB) N\n').lower()
if userinput == 'a':
print " Let's continue learning how to add"
x = int(input ("Give me the first number: "))
y = int(input ("Give me the second number: "))
print "The result is", (x+y)
if userinput == 'b':
print ('\nNow quitting program..')
time.sleep(3)
else:
print('\nPlease enter "A", or "B"\n')


I really appreciate your feedback. Will comment on threads once I understand what I'm doing. :) Thanks.

When you are asking a string to the user, use raw_input instead of input (with python 2). Here is a working version where I added a few while statements

import time
print "Let's learn how to add"
quit = False
while not quit:
    x = int(input ("Give me the first number: "))
    y = int(input ("Give me the second number: "))
    print "The result is", (x+y)
    while True:
        userinput = raw_input('Want to continue adding?\nA) Y\nB) N\n').lower()
        if userinput == 'a':
            print " Let's continue learning how to add"
            break
        elif userinput == 'b':
            print ('\nNow quitting program..')
            time.sleep(3)
            quit = True
            break
        else:
            print('\nPlease enter "A", or "B"\n')

When you are asking a string to the user, use raw_input instead of input (with python 2). Here is a working version where I added a few while statements

import time
print "Let's learn how to add"
quit = False
while not quit:
    x = int(input ("Give me the first number: "))
    y = int(input ("Give me the second number: "))
    print "The result is", (x+y)
    while True:
        userinput = raw_input('Want to continue adding?\nA) Y\nB) N\n').lower()
        if userinput == 'a':
            print " Let's continue learning how to add"
            break
        elif userinput == 'b':
            print ('\nNow quitting program..')
            time.sleep(3)
            quit = True
            break
        else:
            print('\nPlease enter "A", or "B"\n')

Thanks. I see what I was missing. When can I use Raw input ?

Thanks. I see what I was missing. When can I use Raw input ?

In python 2.x is best to always use raw_input.
input() is i mix off eval() and raw_input() in python 2.x that return an integer.

Python 3.x has only input() work the same way as raw_input in python 2.x(return a string)
So you may ask,what if a need a integer from user input?

IDLE 2.6.5      
>>> my_input = raw_input('Type something: ')
Type something: test
>>> type(my_input)
<type 'str'>
>>> my_input = raw_input('Type something: ')
Type something: 5
>>> my_input = int(my_input)
>>> my_input
5
>>> type(my_input)
<type 'int'>
>>> #you can make raw_input return an integer
>>> my_input = int(raw_input('Type something: '))
Type something: 8
>>> my_input
8
>>> type(my_input)
<type 'int'>
>>>

Edited 6 Years Ago by snippsat: n/a

Ok. I added a menu now. Everything working however, I want for it to ask me Want to continue adding (y) or (n). If no go to main menu. What do you think ?

import time
menu = """
Choose the operation to do (1-2):
1) Add
2) Substract

3) Quit
"""
operation = int(raw_input(menu))
while operation !=3:
if operation ==1:
x = int(raw_input ("Give me the first number: "))
y = int(raw_input("Give me the second number: "))
print "The result is", (x+y)
while True:
userinput = raw_input ("Want to continue adding?\nA) y\nB) n\n")
if userinput == 'y':
print "Let's continue adding"
x = int(raw_input ("Give me the first number: "))
y = int(raw_input("Give me the second number: "))
print "The result is", (x+y)
if operation ==2:
x = int(raw_input ("Give me the first number: "))
y = int(raw_input ("Give me the second number: "))
print "The result is", (x-y)
else:
print "Not a valid operation, try again"
operation = int(raw_input(menu))

What am I missing ? :S

Ok. I added a menu now. Everything working however, I want for it to ask me Want to continue adding (y) or (n). If no go to main menu. What do you think ?

import time ## why this?
menu = """
Choose the operation to do (1-2):
1) Add
2) Substract

3) Quit
"""
operation = int(raw_input(menu))
while operation !=3:
 if operation ==1:
  x = int(raw_input ("Give me the first number: "))
  y = int(raw_input("Give me the second number: "))
  print "The result is", (x+y)
  while True:
      userinput = raw_input ("Want to continue adding?\nA) y\nB) n\n")
if userinput == 'y':
 print "Let's continue adding"
x = int(raw_input ("Give me the first number: "))
y = int(raw_input("Give me the second number: "))
print "The result is", (x+y)
if operation ==2:
   x = int(raw_input ("Give me the first number: "))
   y = int(raw_input ("Give me the second number: "))
   print "The result is", (x-y)
else:
  print "Not a valid operation, try again"
  operation = int(raw_input(menu))

What am I missing ? :S

At least you were missing code tags ((code) button before paste you know) And after I put them to quote, I see that the codes indenting is messed up now. Could you redo, pasting the code properly?

Edited 3 Years Ago by mike_2000_17: Fixed formatting

Dont mix indentations use always 4 space.
Look into function,when you write all in global space it get soon difficult if you want to jump back and fourth between part of the code.

def my_menu():
    menu = """
    Choose the operation to do (1-2):
    1) Add
    2) Substract
    3) Quit
    """
    return menu

def add():
    x = int(raw_input("Give me the first number: "))
    y = int(raw_input("Give me the second number: "))
    print "The result is", (x+y)

def Substract():
    x = int(raw_input ("Give me the first number: "))
    y = int(raw_input("Give me the second number: "))
    print "The result is", (x-y)

def main():
    '''this is called dok string info about function'''
    while True:
        operation = raw_input(my_menu())
        if operation == '1':
            add()
        elif operation == '2':
            Substract()
        elif operation == '3':
            return
        else:
            print 'Not correct input,try again'

if __name__ == '__main__':
    main()

Here you fall back into main when a function is finish.
Then you dont neeed ask this userinput = raw_input ("Want to continue adding?\nA) y\nB) n\n") .
Because user can just type 1 again.

Edited 6 Years Ago by snippsat: n/a

This question has already been answered. Start a new discussion instead.