2017-11-18 7 views
0

したがって、前のコードは "while(number)intではありません:"ループの前に正しく動作しましたが、リストの合計を生成するのではなく、ループ処理を続けるだけです。私のプログラムが整数だけを取って、ユーザーが0を押したときに停止するようにしようとしています

本当にこの点で助けていただければ幸いです。ありがとうございました!

List = [] 

while True: 
    try: 
     number = int(input("Please enter a number: ")) 

     if number == 0: 
      Sum = 0 
      for i in List: 
       Sum = i + Sum 

      print(Sum) 
      break 

     List.append(number) 

    except ValueError: 
     print("Please only enter integer values.") 
+1

'type(number)はintではありません:' numberは整数ですので、 'False'にすることはできません。 –

+0

ええ、私が投稿する前に私はintとしてそれを持っていました。私がそうすると、プログラムはまったく動かない:/。 – Catz

+0

'pro'と' ans'とは何ですか?同じ変数ではないはずですか? –

答えて

0

は、このようなwhile type(number) is not int:ループ内if number == 0:を置きます。

これを修正するには、あなただけの追加(それは本当に問題doesntの、または前)の後に、このブレーク条件を追加することができます。私はあなたがwhileループユーザ入力0を終了することを推測している

number = int(input("Please enter a number: ")) 
List.append(number) 
if number == 0: 
    break 
0

実は、これはすべての数字のために永遠にユーザが入力だけではなく、ゼロをループしておく必要があります。

List = [] 



pro = 1 
while(pro is not 0): 
    number = False 
    while type(number) is not int: 
     try: 
      number = int(input("Please enter a number: ")) 
      List.append(number) 

     except ValueError: 

      print("Please only enter integer values.") 


    if(number == 0): 
     Sum = 0 
     for i in List: 
      Sum = i + Sum 
     ans = 0 

print(Sum) 
0

List = [] 

pro = 1 
while pro is not 0: 
    try: 
     number = int(input("Please enter a number: ")) 
     List.append(number) 
     # This breaks while loop when number == 0 
     pro = number 
    except ValueError: 
     print("Please only enter integer values.") 

Sum = 0 
for i in List: 
    Sum += i 

print(Sum) 

EDIT:不要なコードも掃除しました。

0

次のように書かれたときに、私は、それが動作するようになった:

List = [] 



pro = 1 
while(pro is not 0): 
    while True: 
     try: 
      number = int(input("Please enter a number: ")) 
      List.append(number) 
      break 
     except ValueError: 

      print("Please only enter integer values.") 


    if(number == 0): 
     Sum = 0 
     for i in List: 
      Sum = i + Sum 
     pro = 0 

print(Sum) 

しかし、私は本当にこれは、それが唯一のint型の値を取る行っているか、いずれかの明確化が本当に参考になる理解し、それ以外の場合は感謝していませんあなたのすべての助けをあなた!

+0

ユーザが非整数型を入力すると、 'int(input(...))'呼び出しはValueError例外をスローします。そのため、コードは 'except ValueError:'節にジャンプしてそこのprint文を実行します。 'while(True):'ループが次に続きます。 –

関連する問題