2016-04-03 115 views
0
while True: 
    get2=input('Enter: ') 
    lst2.append(get2) 
    if get2=='': 
     break 

TypeError:不支持的操作數類型爲+:'int'和'str' 發生。 我想這是因爲退出命令的''不被識別爲整數。作爲退出代碼AND make sum(list)函數的工作方式,我該如何「輸入」密鑰?python退出錯誤

+0

您可能希望在將*追加到列表之前檢查輸入值*。 – chepner

回答

2

您正在附加一個字符串,然後嘗試將一堆字符串聚合在一起。

你需要將它們轉換爲整數/第一浮點數所以你必須 lst2.append(int(get2))lst1.append(int(get1))

或者你可以使用float浮點數

2

input在Python 3的結果是總是一個字符串。然後sum函數試圖列表中的每個項目加在一起,從0開始,所以它試圖這樣:

0 + your_list[0] 

但是,列表的第一項是一個字符串,你不能給字符串添加一個整數。

要解決這個問題,在輸入第一個轉換爲整數使用int功能:

print('Enter a series of integers. Hit enter to quit') 
lst1=[] 
lst2=[] 

while True: 
    get1=input('Enter: ') 
    if get1=='': 
     break 
    lst1.append(int(get1)) 



while True: 
    get2=input('Enter: ') 
    if get2=='': 
     break 
    lst2.append(int(get2)) 


if sum(lst1)==sum(lst2): 
    print('The two lists add up the same') 
else: 
    print('The two lists do not add up') 

請注意,我已經搬到整數轉換前的if聲明,否則進入''會導致作爲空字符串引發的異常不是有效的整數。

+0

這完全擺脫了錯誤。謝謝你! – Din

+0

@Din沒問題。請記住接受幫助你的答案! –