minimum = None
maximum = None
try:
num = input("Enter a number: ")
if num == done : break
except:
print ("Invalid input")
fval = float (num)
if fval > maximum:
maximum = fval
if minimum is None:
minimum = fval
elif fval < minimum:
minimum = fval
print("Maximum is", maximum)
print("Minimum is", minimum)
我想解决的问题陈述如下:写一个程序,反复提示用户输入整数,直到用户输入'done'。一旦输入'done',打印出最大和最小的数字。如果用户输入的不是有效的数字,则用tryexcept捕捉,并发出适当的消息,忽略这个数字。输入7、2、bob、10和4,并匹配下面的输出。
minimum = 10e+10 # cannot compare None and float
maximum = -10e+10
while True:
try:
num = input("Enter a number: ")
if num == 'done' : break # your break is not in any loop
except:
print ("Invalid input")
fval = float (num)
if fval > maximum:
maximum = fval
# if minimum is None: # not needed
# minimum = fval
if fval < minimum:
minimum = fval
print("Maximum is", maximum)
print("Minimum is", minimum)
Enter a number: 2
Maximum is 2.0
Minimum is 2.0
Enter a number: 10
Maximum is 10.0
Minimum is 2.0
Enter a number: done
所以,如果你想突破它,你需要使用一个while循环,同时你需要把done的值变成一个字符串。如果你运行你的代码,你会得到这个错误。
if num == 'done': break
^
SyntaxError: 'break' outside loop
好吧,这可能是你正在寻找的东西
minimum = 10e+10 # cannot compare None and float
maximum = -10e+10
while True:
num = input("Enter a number: ")
try:
if num.isnumeric() or float(num):
fval = float(num)
if fval > maximum:
maximum = fval
# if minimum is None: # not needed
# minimum = fval
if fval < minimum:
minimum = fval
print("Maximum is", maximum)
print("Minimum is", minimum)
continue
except Exception as e:
if num != 'done':
print("Invalid input")
continue
elif num == 'done':
break