python判断是否是正整数,python 判断是否为整数
@作者:润森
这是一个编程问题。
信用卡号码必须是13到16位的整数。
1954年,IBM的rydhxc Luhn提出了一种验证信用卡号码有效性的算法。
该算法对于确定输入的卡号是否正确或者扫描仪是否正确扫描了该信用卡非常有用。
4、指Visa信用卡
5、指万事达卡
37、指美国运通国际信用卡
6、指发现信用卡
所有的信用卡号都可以按照这种合法性测试来生成,这种测试通常被称为Luhn测试或Mod 10测试,可以描述如下(为了解释方便,假设卡号为4388576018402626:
1.从右向左加倍偶数位数。如果一个数加倍的结果是一个两位数,那么把这两位数相加得到一个位数。
2.现在把第一步得到的所有个位数相加。
3.将卡号中所有奇数位的数字从右向左相加。
4.将步骤2和步骤3中获得的结果相加。
5.如果第四步得到的结果能被10整除,那么卡号就是合法的;否则,卡号是非法的。
比如4388576018402626这个号码不合法,但是4388576018410707这个号码是合法的。
编程,提示用户输入一个长整数的信用卡号,显示这个号是合法的还是非法的。
密码
def isValid(数字):
#判断是否合法就是计算第四步的结果。如果整除是合法的,我们可以只取模数。
如果sumOf0ddPlace(number) % 10==0:
打印(“信用卡号的合法性”)
否则:
打印(“非法信用卡号”)
def sumOfDoubleEvenPlace(数字):
#现在将第一步得到的所有个位数相加。这里传入的数字是一个int类型。
总和=0
for i in str(number)[:2]:
if int(i)*2 10:
sum=sum int(i)*2
否则:
对于str(int(i)*2)中的j:
总和=总和int(j)
返回总和
def getDigit(数字):
返回sum([int(I)for I in str(number)[1:2]])
def sumOf0ddPlace(数字):
返回sumOfDoubleEvenPlace(number)get digit(number)
Number=input(用户输入的信用卡号必须是13到16位的整数)
isValid(数字)
#验证
用户输入的信用卡号必须是13到16位的整数4388576018402626。
非法信用卡号
用户输入的信用卡号必须是13到16位的整数4388576018410707。
信用卡号码的合法性
补充
添加prefixMatched判断卡号前缀是否合法。
4、指维萨卡
5、指主卡
37、指美国运通卡
6、指发现卡
def前缀匹配(数字):
如果数字[0]==4 或数字[0]==5 或数字[0]==37 :
打印(“合法信用卡前缀”)
elif编号[:2]==37 :
打印(“合法信用卡前缀”)
否则:
打印(“非法信用卡前缀”)
6: def getsize (d):获取信用卡号的长度并返回结果。
def getSize(d):
返回号码[:d]
7: DEF GET PREFIX (number,k):获取信用卡号的第k个 。
def getPrefix(数字,k):
返回数字[k]
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。