为什么 IF 在 WHILE 循环中似乎不起作用? (Python 3.4)
Why doesn't IF seem to work inside a WHILE loop? (Python 3.4)
我正在使用 python 为计算器编写代码。
loop = 1
while loop == 1: #loop calculator while loop is TRUE
print ("""Options:
Addition 1)
Subtraction 2)
Multiplication 3)
Division 4)
Quit 5)
Reset Sum 6) """) #display calculator's options
(' ') #spacer
choice = input("option: ") #get user input for calculator options
#----------------------------------------------------------------------------Addition
if choice == 1: #check if user wants to add
print (' ') #spacer
print ('Addition Loaded!') #tell the user they are adding
print (' ') #spacer
add1 = int(input('Base Number')) #get value for add1
sum = int(input('Number ta add')) #get value for sum
sum = add1 + sum #make sum equal the sum of add1 and sum
print (str(sum)) #print sum
addloop = 1 #set addloop to TRUE
while addloop == 1: #continue addition while addloop = TRUE
add1 = int(input('Additional number to add')) #get value for add1
if add1 == 0: #check if add1 equals zero
print (' ') #spacer
sum = add1 + sum #make sum equal the sum of add1 and sum
if add1 != 0: #check if add1 is not equal to 0
print (str(sum)) #print sum
if add1 == 0: #check if add1 is equal to 0
print ('Total: ',) #print prefix
print (str(sum)) #print sum
addloop = 0 #set addloop to FALSE
在此处列出的加法部分下方,还有其他减法、乘法等部分使用 ELIF 而不是 IF(它们应该是?)。问题是,当用户为计算器选择一个选项(加法、减法...)时,它反而循环回到 while 循环,而不经过任何 IF 或 ELIF 语句。 IF 语句在 WHILE 循环中不起作用吗?
这是你的问题:
choice = input("option: ")
在 Python 3 下,这会将 字符串 放入 choice
。您需要一个整数:
choice = int(input("option: "))
如果用户键入的不是整数,这将引发 ValueError
。您可以使用 try
/except ValueError
块来捕获它,或者您可以保留问题中出现的 choice
行并将所有比较更改为如下所示:
if choice == "1": # compare to a string instead of an integer
我正在使用 python 为计算器编写代码。
loop = 1
while loop == 1: #loop calculator while loop is TRUE
print ("""Options:
Addition 1)
Subtraction 2)
Multiplication 3)
Division 4)
Quit 5)
Reset Sum 6) """) #display calculator's options
(' ') #spacer
choice = input("option: ") #get user input for calculator options
#----------------------------------------------------------------------------Addition
if choice == 1: #check if user wants to add
print (' ') #spacer
print ('Addition Loaded!') #tell the user they are adding
print (' ') #spacer
add1 = int(input('Base Number')) #get value for add1
sum = int(input('Number ta add')) #get value for sum
sum = add1 + sum #make sum equal the sum of add1 and sum
print (str(sum)) #print sum
addloop = 1 #set addloop to TRUE
while addloop == 1: #continue addition while addloop = TRUE
add1 = int(input('Additional number to add')) #get value for add1
if add1 == 0: #check if add1 equals zero
print (' ') #spacer
sum = add1 + sum #make sum equal the sum of add1 and sum
if add1 != 0: #check if add1 is not equal to 0
print (str(sum)) #print sum
if add1 == 0: #check if add1 is equal to 0
print ('Total: ',) #print prefix
print (str(sum)) #print sum
addloop = 0 #set addloop to FALSE
在此处列出的加法部分下方,还有其他减法、乘法等部分使用 ELIF 而不是 IF(它们应该是?)。问题是,当用户为计算器选择一个选项(加法、减法...)时,它反而循环回到 while 循环,而不经过任何 IF 或 ELIF 语句。 IF 语句在 WHILE 循环中不起作用吗?
这是你的问题:
choice = input("option: ")
在 Python 3 下,这会将 字符串 放入 choice
。您需要一个整数:
choice = int(input("option: "))
如果用户键入的不是整数,这将引发 ValueError
。您可以使用 try
/except ValueError
块来捕获它,或者您可以保留问题中出现的 choice
行并将所有比较更改为如下所示:
if choice == "1": # compare to a string instead of an integer