2017-11-19 18 views
0

ユーザーが '0'を入力するまでリストにユーザー入力を挿入しようとしています。現在、0と入力するとwhileループから抜けることはありません。なぜこのループは "0"が入力された後に終了しませんか?

は、ここに私のコードです:

num_array = [] 
inputnum = raw_input('Please enter a number: ') 
num_array.append(inputnum) 
while inputnum != 0: 
    inputnum = raw_input('Please enter a number: ') 
    num_array.append(inputnum) 
for i in range(len(num_array) - 1): 
    print(num_array[i] + ' + ') 
print(num_array[total - 1] + ' = ' + sum(num_array)) 
+3

'raw_input'は文字列' '0'!= = 'を返します。 –

+0

私は誰かがPythonを学ぶ前にPHPを学んだと思う:) –

答えて

1

はチェックしてみてください。raw_input関数は文字列ではなく整数を返すため

num_array = [] 
# raw_input return value as string,int convert it to string. 
inputnum = int(raw_input('Please enter a number: ')) 
num_array.append(inputnum) 
# earlier check for string '0' to interger 0 so the condition returned true but now int() converted inputnum to integer. 
while inputnum != 0: 
    inputnum = int(raw_input('Please enter a number: ')) 
    num_array.append(inputnum) 
for i in range(len(num_array) - 1): 
    print("%d +" % num_array[i]) 
# sum() gave exception because earlier num_array had string type but int() converted all the value to integer. 
print("%d = %d" % (num_array[len(num_array) - 1],sum(num_array))) 
0

while inputnum != '0': 

を使用してみてください。ただし、input_numが整数である必要がある場合は、上記の解決策に従ってください。

+0

上記のように、raw_inputは文字列 '0'を返します。 – stevebroll

+0

説明を追加できますか?コードのみの回答はそれほど役に立ちません。 – yacc

+1

十分です。私の答えが直感的だったとすると、間違いだった – stevebroll

関連する問題