陷入无限循环。python
我试图让这段代码运行,这样当我输入'done'时,它就把我从循环中解救出来。问题是我放了一个try/except来尝试捕捉任何不是数字的东西,并反馈错误消息。这会在if语句之前捕获,该语句会将我从循环中分离出来,并反馈错误消息,并在无限循环中捕获我。我尝试在所有if/else语句之后移动try/except,但是字符串被放置在max的值中,这不是我想要实现的。有没有办法让try和except运行,但仍然允许我传递“done”命令退出循环陷入无限循环。python,python,python-3.x,Python,Python 3.x,我试图让这段代码运行,这样当我输入'done'时,它就把我从循环中解救出来。问题是我放了一个try/except来尝试捕捉任何不是数字的东西,并反馈错误消息。这会在if语句之前捕获,该语句会将我从循环中分离出来,并反馈错误消息,并在无限循环中捕获我。我尝试在所有if/else语句之后移动try/except,但是字符串被放置在max的值中,这不是我想要实现的。有没有办法让try和except运行,但仍然允许我传递“done”命令退出循环 largest = None smallest = Non
largest = None
smallest = None
while True:
num = input("Enter a number: ")
try:
num = float(num)
except:
print('Invalid Input')
continue
if num == "done" :
break
elif largest is None:
largest = num
elif smallest is None:
smallest = num
elif largest < num:
largest = num
elif smallest > num:
smallest = num
print(num)
print("Maximum", largest)
print("Minimum", smallest)
max=None
最小=无
尽管如此:
num=输入(“输入一个数字:”)
尝试:
num=浮点(num)
除:
打印('无效输入')
持续
如果num==“完成”:
打破
如果没有:
最大=num
如果最小值为“无”:
最小=num
elif最大数值:
最小=num
打印(个)
打印(“最大”,最大)
打印(“最小值”,最小值)
更改此选项:
try:
num = float(num)
except:
print('Invalid Input')
continue
if num == "done":
break
为此:
try:
num = float(num)
except:
if num == "done":
break
print('Invalid Input')
continue
通过将
if
放在除
之外的内,您允许循环在继续之前中断
,首先测试完成
,然后转换为浮点
您可以简化测试
如果您不输入任何数字或输入一个数字,该程序应该可以运行
num = input("Enter a number: ")
if num == "done" :
break
try:
num = float(num)
except:
print('Invalid Input')
continue
largest = largest or num
smallest = smallest or num
largest = max(num, largest)
smallest = min(num, smallest)
原因是,在检查“done”
之前,您正在使用检查输入是否为浮点,因此,当它实际上是“done”
时,它只是在检查之前继续
我会这样做的
largest = None
smallest = None
while True:
num = input("Enter a number: ")
# check if it's done first
if num == "done" :
break
try:
num = float(num)
except:
print('Invalid Input')
continue
elif largest is None:
largest = num
elif smallest is None:
smallest = num
elif largest < num:
largest = num
elif smallest > num:
smallest = num
print(num)
print("Maximum", largest)
print("Minimum", smallest)
max=None
最小=无
尽管如此:
num=输入(“输入一个数字:”)
#检查是否先完成
如果num==“完成”:
打破
尝试:
num=浮点(num)
除:
打印('无效输入')
持续
如果没有:
最大=num
如果最小值为“无”:
最小=num
elif最大数值:
最小=num
打印(个)
打印(“最大”,最大)
打印(“最小值”,最小值)
@ KahanRobn森我在C++和Python中编程很多,<代码> > <代码>在Python <代码>或中无效。