2016-11-24 36 views
0

我是編程新手,我想編寫一個代碼,結果如下所示:(btw,bsn number是在我的國家的註冊號碼,我試着用這個代碼驗證隨機bsn號碼)通過用戶輸入驗證一個號碼

check_digits = [9, 8, 7, 6, 5, 4, 3, 2, -1] 
bsn = input('Which bsn number do you want to check?') 
total = 0 

def has_valid_bsn_length(bsn): 
    len(bsn) == 9 
    if len(bsn) != 9: 
     print('Not a valid bsn number') 
    else: 
     return bsn 


def has_valid_check_digit(bsn): 
    for i in range(0, 9): 
     digit = int(bsn[i]) 
     result = digit * check_digits[i] 
     total = result 

if total % 11 ==0: 
    print('Valid bsn') 
else: 
    print('Not a valid bsn number') 

當我嘗試此代碼時,沒有答案出現。你們有沒有人知道我可以如何改變代碼,使其正常工作?

+1

你確定你的代碼正在執行嗎?如果你錯過了,你不會調用'has_valid_bsn_length'和'has_valid_check_digit'函數 –

+0

我需要這兩個是方法,我認爲我做得很對,我該如何解決這個問題? –

回答

0

在我看來,你有第6行的語法錯誤:len(bsn) == 9 你也必須調用你的函數。到目前爲止,你已經定義了它們。 添加這樣的電話:result = has_valid_check_digit(bsn)

而你的第二個函數不返回任何值。

+0

這可能不是答案考慮OP沒有得到輸出,但沒有得到語法錯誤 – vks