我正在研究 Python 中的一个经典学生问题,在一系列条目中找到最大值和最小值。通常,我想通过将所有有效的用户条目放在一个列表中来做到这一点,但我们应该逐个评估每个条目,因为它来自用户。(在这个类中,我们在列表之前覆盖循环。)
由于我没有使用列表,因此我不愿将变量声明为 None,然后评估“最大为 None 或最大 < new”,因为前一种情况只会发生一次。相反,我一直在使用 min() 和 max() ,直到我遇到以下解决方案,这在我看来很优雅,但我的同龄人认为这是可憎的。
那么问题来了:这是对 try/except 的有效使用吗?它比注释的替代方案更不pythonic吗?(当然,最 Pythonic 的方式是 min([list]) 但我在这里。)
#smallest = None
while True:
num = raw_input("Enter a number: ")
if num == "done" : break
try:
num = int(num)
except:
print 'Invalid input'
continue
try:
smallest = min(num,smallest)
except NameError:
smallest = num
# if num < smallest or smallest is None:
# smallest = num
print "Minimum is", smallest