说明:编写一个程序,重复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入除有效数字以外的任何内容,请使用try / except捕获它并输出相应的消息并忽略该数字。输入7,2,bob,10和4并匹配下面的输出。
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
num = int(num)
except:
print('Invalid input')
continue
if smallest is None or num < smallest :
smallest = num
elif largest is None or num > largest :
largest = num
print("Maximum is", largest)
print("Minimum is", smallest)
因此在输入7,2,bob,10和4,然后输入done之后,代码将不会打印出最后两行中编码的最大和最小数字。我的错误在哪里?
由于
答案 0 :(得分:0)
您可以将数字附加到列表中,并使用内置方法为您执行此操作,min()
和max()
。例如:
my_list = []
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
num = int(num)
my_list.append(num)
except:
print('Invalid input')
continue
largest = max(my_list)
smallest = min(my_list)
print("Maximum is", largest)
print("Minimum is", smallest)
答案 1 :(得分:0)
在最大整数是第一个输入的情况下,它不起作用。您可以尝试将最大和最小变量初始化为第一个输入来解决它。
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
num = int(num)
except:
print('Invalid input')
continue
if largest is None:
largest,smallest = num,num
elif num < smallest :
smallest = num
elif num > largest :
largest = num
print("Maximum is", largest)
print("Minimum is", smallest)