我是Python的新手并且正在进行在线教程。我有一项我无法完成的任务。我的问题是,当我运行此代码时,minimum
变量保持与None
相同,并且不记录新值输入。
maximum = None
minimum = None
while True:
try:
num2 = raw_input('Type here ')
if num2 == 'done':break
else:
num = int(num2)
if num <= minimum:
minimum = num
print minimum
elif num >= maximum:
maximum = num
print maximum
except:
print 'Invalid Entry'
print 'Maximum is %d' % maximum
print 'Minimum is %d' % minimum
答案 0 :(得分:0)
您的问题是,您正在检查(some number) <= None
您是否无法将数字与None
进行比较。相反,minimum=float("inf")
和maximum=float("-inf")
会将最小值设置为无穷大,最大值设置为负无穷大。这样,输入的第一个数字将小于无穷大,将其设置为minimum
,并且大于负无穷大(将其设置为maximum
)。请注意,elif maximum >= num
需要更改为if maximum >= num
(以处理第一个输入的数字)。
答案 1 :(得分:0)
import sys
maximum = None
minimum = sys.maxsize
while True:
try:
num2 = raw_input('Type here ')
if num2 == 'done':break
else:
num = int(num2)
minimum = min(minimum, num)
maximum = max(maximum, num)
except:
print 'Invalid Entry'
if maximum is None:
minimum = None
print 'Maximum is %d' % maximum
print 'Minimum is %d' % minimum
答案 2 :(得分:0)
您正在比较None
和int
,Python不知道如何做到这一点。
相反,你应该这样做:
maximum = float('-inf')
minimum = float('inf')
任何int
都会大于-infinity
且低于infinity
,所以一切正常。关于零也不能说同样的事情,所以不要使用那些。
另外,请查看min
和max
builtins。