问题如下:
Example output:
Calculator
Give the first number: 100
Give the second number: 25
(1) +
(2) -
(3) *
(4) /
(5)Change numbers
(6)Quit
Current numbers: 100 25
Please select something (1-6): 5
Give the first number: 10
Give the second number: 30
(1) +
(2) -
(3) *
(4) /
(5)Change numbers
(6)Quit
Current numbers: 10 30
Please select something (1-6): 1
The result is: 40
(1) +
(2) -
(3) *
(4) /
(5)Change numbers
(6)Quit
Current numbers: 10 30
Please select something (1-6): 6
Thank you!
我的解决办法是:
print("Calculator")
var1 = input("Give the first number: ")
var2 = input("Give the second number: ")
print("(1) +\n(2) -\n(3) *\n(4) /\n(5)Change numbers\n(6)Quit")
print("Current numbers: " + var1 + " " + var2)
opcion = input("Please select something (1-6): ")
while (opcion != "6"):
if (opcion == "1"):
var3 = int(var1) + int(var2)
print("The result is: " + str(var3))
elif (opcion == "2"):
var3 = int(var1) - int(var2)
print("The result is: " + str(var3))
elif (opcion == "3"):
var3 = int(var1) * int(var2)
print("The result is: " + str(var3))
elif (opcion == "4"):
var3 = int(var1) / int(var2)
print("The result is: " + str(var3))
elif (opcion == "5"):
var1 = input("Give the first number: ")
var2 = input("Give the second number: ")
opcion = input("Please select something (1-6): ")
else:
print("Selection was not correct.")
print("Thank you!")
但是在“ELIF(OpCion==5))中:“自动校正器说明我陷入无限循环,在输入两个新数字之后,我尝试了一个中断,但是它完全退出while循环,有什么想法吗?谢谢您。
最佳答案
代码中的问题:
只有在开始的时候你才能得到opcion,之后只有在opcion 5岁的时候你才能得到opcion
当您给出opcion=“1”时,它会添加并给出答案,然后检查while语句when为true,然后再次添加并再次检查goes oooooooooooon
,从而生成无限循环
修改:
print("Calculator")
var1 = input("Give the first number: ")
var2 = input("Give the second number: ")
print("(1) +\n(2) -\n(3) *\n(4) /\n(5)Change numbers\n(6)Quit")
print("Current numbers: " + var1 + " " + var2)
while True:
opcion = input("Please select something (1-6): ")
if (opcion == "1"):
var3 = int(var1) + int(var2)
print("The result is: " + str(var3))
elif (opcion == "2"):
var3 = int(var1) - int(var2)
print("The result is: " + str(var3))
elif (opcion == "3"):
var3 = int(var1) * int(var2)
print("The result is: " + str(var3))
elif (opcion == "4"):
var3 = int(var1) / int(var2)
print("The result is: " + str(var3))
elif (opcion == "5"):
var1 = input("Give the first number: ")
var2 = input("Give the second number: ")
elif (opcion == "6"):
break
else:
print("Selection was not correct.")
print("Thank you!")
更完善的解决方案:
import operator
print("Calculator")
var1 = input("Give the first number: ")
var2 = input("Give the second number: ")
print("(1) +\n(2) -\n(3) *\n(4) /\n(5)Change numbers\n(6)Quit")
print("Current numbers: " + var1 + " " + var2)
operations={"1":operator.add,"2":operator.sub,"3":operator.mul,"4":operator.div}
while True:
option = input("Please select something (1-6): ")
print option
if option in operations:
var3=operations[option](int(var1),int(var2))
print "value"+str( var3)
continue
if (option == "6"):
print "quiting"
break
elif (option == "5"):
var1 = input("Give the first number: ")
var2 = input("Give the second number: ")
else:
print("Selection was not correct.")
print("Thank you!")
注:
正确的英语词汇应该是
options
而不是opcion
,但这并不重要:P