【发布时间】:2019-06-19 11:36:01
【问题描述】:
我正在用 Python 3 编写代码来显示一些数字之间的最大值和最小值。它给出了一个错误。
sml_value = None
largest_value = None
while True:
line = input('Enter a number: ')
if line == 'done':
break
try:
fl = float(line)
except:
print('Invalid input')
continue
if line < sml_value:
sml_value = line
elif line > largest_value:
largest_value = line
print(sml_value, largest_value)
输出:
Enter a number: 5
Traceback (most recent call last):
File "exercise5.2.py", line 13, in <module>
if line < sml_value:
TypeError: '<' not supported between instances of 'str' and 'NoneType'
【问题讨论】:
-
你不应该比较
fl,而不是line吗?您需要特别考虑sml_value或largest_valueis None的情况,因为这是您最初设置的。 -
感谢指正。我会试试的
-
条件语句是否为:如果 sml_value 为 None:sml_value = fl elif maximum_value 为 None:maximum_value = fl elif sml_value fl: maximum_value = fl
-
可能不是
elif,否则你只为第一个非None值设置一个。
标签: python-3.x int nonetype