num_1 = input("Please enter first number: ")
num_2 = input("Please enter second number: ")
print("The numbers you have chosen are",num_1,"and",num_2)
while num_1 or num_2 > 0:
if num_1 < num_2:
print("First number entered is greater.")
elif num_1 > num_2:
print("Second number entered is greater.")
else:
print("Both numbers entered are equal.")
print("Program terminated...")
答案 0 :(得分:1)
您的while循环中的条件未正确表达。你的意思是“只要至少有一个数字大于0”。
但是,你所表达的是:
while num_1 or num_2 > 0
Python将其读作:
while ((num_1) or (num_2 > 0)):
因此,条件询问num_1
的布尔值,仅当False
为num_1
时才会计算为0
。它还询问num_2
是否大于0
并且取两个布尔值的OR
。
这大致转换为:
while (num_1 is not 0 or num_2 is larger than 0)
您正在寻找的是
while (num_1 is larger than 0 or num_2 is larger than 0)
...可以写成:
while num_1 > 0 or num_2 > 0
此外,您永远不会在while循环中重新定义num_1
和num_2
,这就是为什么它不停地继续循环。您可以按如下方式修复:
同时:
#you if语句
num_1 =输入(“请输入第一个数字:”)
num_2 =输入(“请输入第二个数字:”)
print(“您选择的数字是”,num_1,“和”,num_2)
这会一直询问用户输入,直到他们输入两个非正数
答案 1 :(得分:0)
它永远不会退出while循环。如果
将while语句替换为另一个语句答案 2 :(得分:0)
试试这个:
num1 = int(input('Enter first number: '))
num2 = int(input('Enter second number: '))
if num1 == num2:
print('Both are equal.')
elif num1 > num2:
print('Number 1 is greater.')
elif num1 < num2:
print('Number 2 is greater.')
print('Program terminated.')
永远记住,当你想要一个来自用户的数字时,你需要输入int(input([prompt]))而不是输入([prompt])。
你不需要&#39; while&#39;这个程序的循环,但如果你真的想要一个,那么你可以这样做:
num1 = int(input('Enter first number: '))
num2 = int(input('Enter second number: '))
while True:
if num1 == num2:
print('Both are equal.')
break
elif num1 > num2:
print('Number 1 is greater.')
break
elif num1 < num2:
print('Number 2 is greater.')
break
print('Program terminated.')
&#39;破&#39;告诉循环中断并继续该程序。