私は、一連のエントリの最大値と最小値を見つけるという、Python での古典的な学生の問題の 1 つに取り組んでいます。通常、すべての有効なユーザー エントリをリストに入れることでこれを実行したいと考えていますが、代わりに、ユーザーから取得した各エントリを 1 つずつ評価することになっています。(このクラスでは、リストの前にループを扱います。)
私はリストを使用していないので、変数を None と宣言してから、前者のケースは 1 回しか発生しないため、「最大値は None または最大値 < 新規」と評価することに躊躇しています。代わりに、次の解決策にたどり着くまで 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