2015-03-31 72 views
-1

我被指示做一個基本的信用卡驗證器。但是,我卡在信用卡號碼的所有數字必須單獨加起來可以被十整除的部分。因此,例如,12345將加起來15,但然後返回False,而1234將返回True。Python - 信用卡驗證部分問題

的代碼我目前:

for c in cardnum: 
    if sum(c) % 10 != 0: 
    return False 
    return True 

我有現在的錯誤結果說,有不支持的操作數類型(S)爲+一個類型錯誤:「廉政」和「海峽」

+0

'cardnum'是什麼?和它的格式? – Kasramvd 2015-03-31 14:14:21

+0

更可能'cardnum'是字符串的列表或元組,而不是整數。 – cdarke 2015-03-31 14:54:32

回答

0

你的直接問題是,c似乎是一個字符串,所以你不能以你想要的方式加起來的字符。也許你應該他們先轉換爲整數:

if sum([int(d) for d in c]) % 10 != 0: 

這是一個列表理解:如果c='1234',方括號之間的代碼生成整數列表:[1, 2, 3, 4],你可以傳遞給sum()功能沒有任何問題。