2017-07-15 44 views
-3

我如何將這些函數添加到我的代碼?要使用check_account()檢查帳戶是否有效,將接受用戶輸入的帳戶以及列表current_accts。如果帳戶有效,該函數應該返回1,否則如果帳戶無效則返回0。我如何在代碼中實現以下功能?

accNum = int(input("Please enter your seven digit account number: ")) 
if accNum == 5679035: 
    print 'Account', accNum,'is valid' 
elif accNum == 8232322: 
    print 'Account', accNum,'is valid' 
elif accNum == 2134988: 
    print 'Account', accNum,'is valid' 
elif accNum == 6541234: 
    print 'Account', accNum,'is valid' 
elif accNum == 3984591: 
    print 'Account', accNum,'is valid' 
elif accNum == 1298345: 
    print 'Account', accNum, 'is valid' 
elif accNum == 7849123: 
    print'Account', accNum, 'is valid' 
elif accNum == 8723217: 
    print'Account', accNum, 'is valid' 
else: 
    print "Account", accNum, "is NOT valid" 

回答

2

首先,您需要一些數據結構來存儲您的有效帳戶。這可能是一個list

valid_accounts = [5679035, 8232322, ..., 8723217] 

然後,您可以使用in運算符來檢查輸入的號碼是有效的號碼列表中。這樣做,你avoid repeating yourself

account_number in valid_accounts 

最後,你的功能變得簡單:

def is_account_valid(account_number, valid_numbers): 
    if account_number in valid_numbers: 
     return 1 
    else: 
     return 0 

而且你可以使用它像這樣:

valid_accounts = [5679035, 8232322, ..., 8723217] 

account_number = int(input("Please enter your seven digit account number: ")) 

if is_valid_account(account_number, valid_numbers) == 1: 
    print 'Account', account_number, 'is valid' 
else: 
    print "Account", account_number, "is NOT valid" 

注意與Python,故建議使用snake_case。另外,當你看起來是一個初學者時,我強烈建議你使用Python 3而不是Python 2.7。

+0

我得到如何檢查其有效或不是,但它需要一個函數check_account()添加它檢查帳戶是否有效。它將接受用戶輸入的帳戶以及列表current_accts。如果帳戶有效,此函數應該返回1,否則返回0如果帳戶無效 –

2

那麼你應該已經使用了列表:

def validate(accNum, accList): 
    if accNum in accList: 
     return 1 
    return 0 

print(validate(2134988, [5679035, 8232322, 2134988, 6541234, 3984591, 1298345, 7849123, 8723217])) 

輸出:1

0
print 'Account %i %s' % (
    account_num, 
    'Valid' if account_num in { 
     5679035, 8232322, 2134988, 
     6541234, 3984591, 1298345, 
     7849123, 8723217 
    } else 'Invalid' 
) 

的{}僅僅是一個集建築速記。

+0

這是一個班輪,你會如何建議我更好地格式化它? – Hashibuto

+0

這不是一個*班輪*! :) –

+1

它當然是:)我們有一個三元印刷。無論如何,謝謝你格式化很好。我將繼續記住格式以備將來的迴應。 – Hashibuto