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

TypeError 'int' ve str oluşur. Bunun nedeni, çünkü '' çıkış komutu için bir tamsayı olarak tanınmıyor. Giriş kodu, çıkış kodu olarak VE nasıl toplamı (liste) işleviyle çalışır?çıkış hatası

+0

Muhtemelen giriş değerini * kontrol etmek istediğinizde * listeye eklersiniz. – chepner

cevap

2

Bir dizeyi ekliyorsunuz ve bir dizi dizeyi toplamaya çalışıyorsunuz. Eğer lst2.append(int(get2)) ve lst1.append(int(get1))

olurdu ya da kayan nokta sayıları

2

Python 3'te input sonucudur için float kullanabilir böylece

Önce kayan nokta sayıları/tamsayılar için dönüştürmeniz gerekir her zaman bir dize. sum fonksiyon ardından 0'dan başlayarak, birlikte listenin her öğe eklemek için çalışıyor, bu yüzden bu kadar çalışır:

0 + your_list[0] 

Ama listenizin ilk öğe bir dize ve yapamazsın bir dizeye bir tam sayı ekleyin. Aksi '' giren bir neden olacağından,

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') 

Not I tamsayı dönüşümden önceki if ifadeleri taşıdığınız:

int işlevini kullanarak ilk tamsayı girdi dönüştürmek, Bundan kaçınmak için Boş bir dize olarak atılacak istisna geçerli bir tam sayı değil.

+0

Bu tamamen hatadan kurtuldu. Teşekkür ederim! – Din

+0

@Din Sorun değil. Lütfen size yardımcı olan cevapları kabul etmeyi unutmayın! –