有人可以解释这个简单的Python计算器代码吗?
这是一个非常简单的计算器程序的Python代码。有人可以解释这个简单的Python计算器代码吗?
loop = 1 # 1 means loop, 0 means don't loop.
choice = 0 # holds the user's choice in the menu.
while loop == 1:
print ("Welcome to the python calculator.")
print ("Your options are:")
print ("")
print ("1) Addition")
print ("2) Subtraction")
print ("3) Multiplication")
print ("4) Division")
print ("5) Quit calculator")
print ("")
choice = input("Choose your option: ")
if choice == 1:
add1 = input ("Add this: ")
add2 = input ("to this: ")
print (add1, "+", add2, "=", add1+add2)
elif choice == 2:
sub1 = input ("Subtract this: ")
sub2 = input ("from this: ")
print (sub1, "-", sub2, "=", sub1-sub2)
elif choice == 3:
mul1 = input ("Multiply this: ")
mul2 = input ("by this: ")
print (mul1, "*", mul2, "=", mul1*mul2)
elif choice == 4:
div1 = input ("Divide this: ")
div2 = input ("by this: ")
print (div1, "/", div2, "=", div1/div2)
elif choice == 5:
loop = 0
print ("Thank you for using the python calculator, goodbye.")
的问题是,当它得到的以“选择你的选择”线和用户输入的不是去IF-elif的块的相关部分的数,程序而是返回到用“欢迎使用python计算器”消息开始循环。
我试着打印出选择的变量用户输入他们的选择并正确打印出来,让任何人都可以解释为什么它不然后使用在IF-elif的块选择值后立即?
啊,我也可以比较两个字符串,就像你在这里做的那样。 相反,我选择将它们转换为@vaultah建议的整数。 非常感谢,新来的Python。 – 2014-09-05 16:03:33
更换
choice = input("Choose your option: ")
有:
choice = int(raw_input("choose your option: "))
这将返回int
,而不是一个str
,应该解决这个问题。
经过测试并为我工作 – 2014-09-05 15:59:16
在Python 3上进行测试,因为问题已被标记。 – davidism 2014-09-05 15:59:40
@davidism我的错误,没有看到标签,因为我从我的手机回答。我会保留答案,因为其他人可能会觉得它有用。 – 2014-09-05 17:14:00
'str' VS:
...应该对一个字符串进行评估'int'问题 – vaultah 2014-09-05 15:47:09
@vaultah哦! Python中的input()函数是否以字符串形式读取值?我刚刚开始使用Python,所以没有意识到这一点。那么最好的解决方案然后将用户选择投入到一个int或是有一个函数类似于input()读入一个int而不是一个字符串? – 2014-09-05 15:50:30
你可以随时转换它:'int(input('Whatever'))' – vaultah 2014-09-05 15:54:58