为什么我的简单python添加计算器不起作用?

时间:2014-08-29 04:53:46

标签: python

您好我想知道为什么我的添加计算器代码不起作用,我是python和编程的新手,我使用的是python 3.4.1.Heres代码:

def add(x, y):
    """This function will add two numbers"""

    return x + y


number1 = int(input("pick a number: "))

number2 = int(input("pick another number: "))

choice = input
choice2 = input 
if choice == '1' '2' '3' '4' '5' '6' '7' '8' '9' '10':
    print (number1,"+",number2, "=", add(number1,number2))

if choice2 == '1' '2' '3' '4' '5' '6' '7' '8' '9' '10':
    print (number1,"+",number2, "=", add(number1,number2))

编辑:谢谢大家的帮助我弄明白了:)

4 个答案:

答案 0 :(得分:1)

此处,input未定义,因此会抛出错误input undefined

choice = input
choice2 = input 

你不能这样做:

if choice == '1' '2' '3' '4' '5' '6' '7' '8' '9' '10':
    print (number1,"+",number2, "=", add(number1,number2))

if choice2 == '1' '2' '3' '4' '5' '6' '7' '8' '9' '10':
    print (number1,"+",number2, "=", add(number1,number2))

正确的方法是:

if int(choice) <= 10:
    # do something

如果您想将数字从1限制为10,请按以下步骤操作。

num1 = int(input("Pick a number: "))
num2 = int(input("Pick another number: "))

if num1 <= 10 and num2 <= 10:
    print(str(num1) + "+" + str(num2) "=", str(sum([num1, num2])))
else:
    print("The number you entered is greater than 10")

如果您不熟悉sum()函数,sum([num1, num2])将返回num1和num2的总和。

如果你想不加限制,那就是这样:

num1 = int(input("Pick a number: "))
num2 = int(input("Pick another number: "))

print("The sum of " + num1 + "and " + num2 + "is: " + str(sum([num1 + num2])))

答案 1 :(得分:0)

在Python中,'a' 'b''ab'相同。

因此,您的代码要求输入字符串,将它们转换为整数,然后再请求另外两个字符串,并将其与'12345678910'进行比较。除非你为其中一个输入'12345678910',否则没有任何反应。

不幸的是,除此之外,你的问题有点模糊。如果您描述该程序究竟应该做什么(“计算器”不够具体),我们可能会帮助您确定如何执行该程序。

编辑:太多的Ruby,甚至没有注意到choice = input的事情。见rroszkowiak的回答。

答案 2 :(得分:0)

看起来您希望用户输入两个数字,然后验证这两个数字都在1到10之间,如果是,则输出添加字符串。

在这种情况下:行int(input("pick a number: "))已经保证输入将是一个数字。函数int将输入转换为数字。

所以剩下的就是检查两个输入是否在1到10之间。

def add(x, y):
    """This function will add two numbers"""
    return x + y

number1 = int(raw_input("pick a number: "))

number2 = int(raw_input("pick another number: "))

if 1 <= number1 <= 10 and 1 <= number2 <= 10:
    print (number1,"+",number2, "=", add(number1,number2))

如果你真的想对用户好,你可以随时验证他们的输入:

number1 = -1
while not 1 <= number1 <= 10:
  number1 = int(raw_input("pick a number: "))

number2 = -1
while not 1 <= number2 <= 10:
  number2 = int(raw_input("pick another number: "))

print (number1,"+",number2, "=", add(number1,number2))

答案 3 :(得分:0)

你可以有一个计算器,你可以选择任意两个数字,然后选择你想对它们做什么:

num_1 = int(raw_input("Enter Your First Number"))
num_2 = int(raw_input("Enter Your Second Number"))
sum_1 = raw_input("Choose Sum (+ - / or *)")

if sum_1 == "+":
  print num_1, "+", num_2, "=", num_1 + num_2
elif sum_1 == "-":
  print num_1, "-", num_2, "=", num_1 - num_2
elif sum_1 == "/":
  print num_1, "/", num_2, "=", num_1 / num_2
elif sum_1 == "*":
  print num_1, "*", num_2, "=", num_1 * num_2
else:
  print "Numbers or Sum Not Recognised"