您好我想知道为什么我的添加计算器代码不起作用,我是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))
编辑:谢谢大家的帮助我弄明白了:)
答案 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"