python中使用none类型的整数的最大值和最小值

时间:2015-06-28 18:07:18

标签: python

使用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

2 个答案:

答案 0 :(得分:1)

在Python 2.7中,问题在于如果将intNone进行比较,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。