2017-07-15 67 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