問:python語法不太熟,不知這樣寫對不對
運行程序的時候最后輸入end總是報錯,說end沒有定義,但我自己并看不出問題
n = str(input("Enter a number, end with 'end':"))
s = []
while n.lower() != "end":
s.append(int(n))
n = str(input("Enter a number, end with 'end':"))
s.sort()
even_number = 0
odd_number = 0
for i in s:
if s[i]%2 == 0:
even_number+=1
else:
odd_number+=1
print('the smallest value is ',s[0],'the largest value is ',s[-1])
print('the number of even number is ',even_number,'the number of odd number is ',odd_number)
Sum = 0
for i in s:
Sum +=s[i]
print(Sum)
答:
python2的help:
Help on built-in function input in module builtin:
input(...)
input([prompt]) -> value
Equivalent to eval(raw_input(prompt)).
把輸入的字符串當成表達式來計算,因此end會解釋為一個變量。但是因為end在代碼中未定義,所以出錯:
NameError: name 'end' is not defined
解決辦法: 改用 raw_input()