【发布时间】:2017-02-25 05:29:09
【问题描述】:
大家好,这里是 python noobie。我正在尝试确定用户拥有哪种类型的信用卡以及它是否有效。对于以下示例,Visa 卡以数字 4 开头,并且两张卡都有效,因为它们都以 4 开头。如果前面有零,则可以跳过它们。是否有内置功能可以绕过数字,还是我必须在每种情况下都输入?感谢您的时间。
例子:
#VISA 0004222222222222 valid
#VISA 4111111111111111 valid
卢恩斯算法
def 计算(creditNumber): 长度 = len(creditNumber) 奇数 = 0 evenSum = 0
if ( length == 0 ):
return 0
else:
if length % 2 == 0:
last_number = int( creditNumber[-1])
evenSum = evenSum + last_number
return evenSum + calculation( creditNumber[:-1] )
else:
last_number = int( creditNumber[-1] )
last_number = 2 * last_number
addSum = last_number // 10 + last_number % 10
oddSum = oddSum + addSum
return oddSum + calculation( creditNumber[:-1] )
def luhnsCheck():
creditNumber = input ( "What is your credit card number?" )
#Check to see which type of credit card the user has
# American Express starts with 34 or 37
if creditNumber[0-15]
# Discover starts with 6011
# MasterCard starts with 51 or 52 or 53 or 54 or 55
# VISA starts with 4
creditcard_number = calculation( creditNumber )
# Valid Card
if creditcard_number % 10 == 0:
print( "Valid card" )
# Invalid Card
else:
print( "We do not accept that kind of card" )
luhnsCheck()
【问题讨论】:
-
您需要 1) 进一步解释“绕过”的含义,以及 2) 向我们展示您迄今为止编写的代码。
-
您可以使用 if else 来执行此操作。
if str[0:4]=='0000': pass else: do somthing。如果您遇到问题,请发布您的代码。 -
@SivaShanmugam -
if condition: pass; else: function()更好地表达为if not condition: function()。 -
cc 验证 python 代码示例:gist.github.com/zahradil/6208954
-
@nbryans 刚刚更新了我卡在信用卡 cmets 的位置
标签: python