首页 > 解决方案 > 如何在 Python 上比较 NoneType 和 Float

问题描述

我正在用 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'

标签: python-3.xintnonetype

解决方案


largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done" :
        break
    try :
        num = float(num)
    except :
        print('Invalid Input')
        continue
    if largest is None or num > largest:
        largest = num
    elif smallest is None or num < smallest:
        smallest = num
print("Maximum is", int(largest))
print("Minimum is", int(smallest))

推荐阅读