2016-09-02 14 views
0

whileループとValueErrorを結合しようとする際に問題が発生しました。 当初私のプログラムは数字を一緒に追加したいと思っていました。数字の合計がXを超えた場合、私のプログラムはelse文を続行します。最初は、入力が(例えば)文字列であるという事実に焦点を合わせなかった。whileループでの整数エラーのテスト

number = 1 

while number < 10: 
    add = int(raw_input("Enter a number to add: ")) 
    number += add 
    print number 
else: 
    print "Number is greater than 10" 

最初のコードとtry/exceptとValueErrorを組み合わせて、整数だけを入力として使用しようとしました。数字の合計がXを超える場合、2番目のコードは他のステートメントに続きません。誰かがなぜこれが機能しないのか説明してください。

number = 1 

while number < 10: 
    while True: 
     try: 
      add = int(raw_input("Enter a number: ")) 
      number += add 
      print number 
     except ValueError: 
      print "Please enter a number" 
else: 
    print "Number is greater than 10" 

ありがとうございます。

答えて

1

余分なループがあるwhile True:ループがあります。

これを削除すれば、コードは正常に動作します。

while(condition)(条件なしの場合はTrue)は間違いにつながります。ループを一度入力する必要があります。条件を人工的に初期化する必要があります。私はその代わりにそれを書いてください

number = 1 

    while True: 
     try: 
      add = int(raw_input("Enter a number: ")) 
      number += add 
      print number 
      if number>10: 
       break 
     except ValueError: 
      print "Please enter a number" 

    print "Number is greater than 10" 
+0

非常にありがとうございます:) –

+1

それは動作する場合は質問を受け入れてください。 –