2016-10-05 12 views
-3

これは演習です。いくつかのpython演習といくつかの入力が必要

ユーザに「完了」と入力されるまで、整数番号 を繰り返し入力するプロンプトを作成します。 「完了」を入力すると、数値のうち最大値と最小値の数字が になります。ユーザーが何か他のものを入力した場合は、有効な番号よりも をtry/exceptでキャッチし、 という適切なメッセージを出し、その番号を無視します。 本の問題番号5.1の番号を入力し、希望する出力を図のように一致させます。

結果は次のようになります。

Invalid input 
Maximum is 7 
Minimum is 4 

マイコード:

largest = None 
smallest = None 
while True: 
    num = raw_input("Enter a number: ")   
    if num == "done" : break 
    if len(num) < 1 : break   
    try : 
     num = int(num) 
    except :  
     print "Invalid input" 
     continue   
print "Maximum", largest 
print "Minimum", smallest 

はなぜプログラムは、最大と最小をプリントアウトされていませんか?
何が間違っていますか?

+6

これらの両方がまだ「なし」なので、決してそれらを再割り当てしません。ラバーダックにあなたのコードを説明し、すぐに問題が表示されます。 – jonrsharpe

+0

あなたは数字を保存しないで、 'None'から' largest'と 'smallest'変数を決して変更しません。 –

+1

好奇心 - あなたが今Pythonを学んでいるなら、なぜ最新のバージョン(3.5)で学んでいないのですか? – Nicarus

答えて

0

最大値と最小値を入力したことはありません。

largest = float('-inf') # Always smaller than any number 
smallest = float('inf') # Always larger than any number 
while True: 
    num = raw_input("Enter a number: ")   
    if num == "done" : break 
    if len(num) < 1 : break   
    try : 
     num = int(num) 
    except :  
     print "Invalid input" 
     continue 
    # set largest and smallest 
    # initial inf forces first entry to reset the value 
    largest = max(largest, num) 
    smallest = min(smallest, num) 
    # Because None is always smaller than any integer 

print "Maximum", largest 
print "Minimum", smallest 
+0

いくつかの厄介なif/thenブロック - 単に 'max()'と 'min()'を使わないのはなぜですか? – Nicarus

+0

@Nicarus @ - 無限を初期値として使用するように修正されました。 – sabbahillel

+0

@Nicarus私はちょうど始まっていますが、私はいくつかの関数しか知りませんが、入力については感謝しています。上記。 –

関連する問題