使用Python 2.7。我尝试将最小值和最大值初始化为无,然后将if分为2个条件。 问题是最小的总是没有。我没有得到输入数字的最小值。这是怎么回事?
largest=None
small=None
while True:
num = raw_input("Enter a number: ")
if num == "done" : break
else:
n1=int(num)
print largest
n1= int(num)
print small
if n1 <small:
small=n1
if n1> largest:
largest=n1
print "Maximum", largest
print "Min", small
答案 0 :(得分:1)
在Python 2.7中,问题在于如果将int
与None
进行比较,None
将始终小于任何int。示例显示 -
>>> -100000000000 < None
False
你需要做的是设置像 -
这样的条件if small is None:
small = n1
elif small > n1:
small = n1
答案 1 :(得分:0)
使用sys.maxint代替None
:
import sys
largest=-sys.maxint-1
smallest=sys.maxint
由于您希望第一个数字最大和最小,因此最初使最大的数字成为可能的最小值 - 在-sys.maxint-1
的情况下,Converse与最小值相对应 - 使sys.maxint
顺便说一下,你不能在Python 3上比较和int和None。