Python 3.x Python3-TypeError:'&燃气轮机';在';浮动';和';非类型';
我最近参加了一门Python课程,我正在进行的练习希望我找到最大和最小的数字。如果我输入一个“字符串”,那么它会提示“无效输入”。以下是我到目前为止得到的结果,但我得到了一个回溯错误:Python 3.x Python3-TypeError:'&燃气轮机';在';浮动';和';非类型';,python-3.x,traceback,Python 3.x,Traceback,我最近参加了一门Python课程,我正在进行的练习希望我找到最大和最小的数字。如果我输入一个“字符串”,那么它会提示“无效输入”。以下是我到目前为止得到的结果,但我得到了一个回溯错误: Traceback (most recent call last): File "FindingSmallestLargestNum.py", line 15, in <module> if num > largest: TypeError: '>' not support
Traceback (most recent call last):
File "FindingSmallestLargestNum.py", line 15, in <module>
if num > largest:
TypeError: '>' not supported between instances of 'float' and
'NoneType'
回溯(最近一次呼叫最后一次):
文件“FindingSmallestLargestNum.py”,第15行,在
如果num>最大值:
TypeError:“float”和的实例之间不支持“>”
“非类型”
以下是我的代码行:
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 smallest is None:
smallest = num
if num > largest:
largest = num
elif num < smallest:
smallest = num
print("Maximum is",int(largest))
print("Minimum is",int(smallest))
max=None
最小=无
尽管如此:
num=输入(“输入一个数字:”)
如果num==“完成”:中断
尝试:
num=浮点(num)
除:
打印(“无效输入”)
持续
如果最小值为无:
最小=num
如果num>最大值:
最大=num
elif num<最小值:
最小=num
打印(“最大值为”,整数(最大值))
打印(“最小值为”,整数(最小值))
我不知道为什么我会得到这个错误代码。请帮忙
感谢您关于:
if smallest is None:
smallest = num
您已将最小值
正确设置为第一个值,但对最大值
不进行相同设置
这意味着,对于第一个值,表达式num>maximust
将等效于FloatVariable>NoneVariable
,这就是您看到的错误的原因
更好的方法是:
if smallest is None:
smallest = num
largest = num
elif num > largest:
largest = num
elif num < smallest:
smallest = num
如果最小值为无:
最小=num
最大=num
elif num>最大值:
最大=num
elif num<最小值:
最小=num
这样做的好处是使用了以下知识:最小值
和最大值
在开始时都是无
,或者在第一个值之后都是非无
(第一个值本身就是当前的最小值和最大值)
如果为第一个值设置
最小值和最大值,它也不会执行第二个,但我认为任务中已经没有任何值,这意味着他们希望我们使用无值。这花了我一点时间但我做了他们想要的
祝你好运
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" : break
try:
numbers = int(num)
except:
print("Invalid input")
continue
if largest is None:
largest = numbers
elif numbers > largest:
largest = numbers
if smallest is None:
smallest = numbers
elif numbers < smallest:
smallest = numbers
print("Maximum is", largest)
print("Minimum is", smallest)
max=None
最小=无
尽管如此:
num=输入(“输入一个数字:”)
如果num==“完成”:中断
尝试:
数字=整数(num)
除:
打印(“无效输入”)
持续
如果最大值为无:
最大=个数
elif编号>最大值:
最大=个数
如果最小值为无:
最小=数字
elif编号<最小值:
最小=数字
打印(“最大值为”,最大值)
打印(“最小值为”,最小值)
该错误表示正在将num
(一个浮点值)与最大值
(一个非类型
)进行比较。这意味着最大
尚未初始化为适合浮点
比较的类型。尝试修改<代码>最大值<代码>从<代码>没有<代码>到<代码> 0代码>代码。只要快速抬头,@ TyY19,如果输入的第一个数字是否定的,它将不实际工作,它将考虑当前最大值的0。最好是为最大的
做你目前正在为最小的
做的事情,尽管你可以根据我的答案简化它-只有最小的
在开始时需要是无
。@paxdiablo啊,很好,谢谢你们两位的参与。我明白发生了什么,使用你的方法,我能够完成我的小程序!