python-3.x - 我有与 Luhn_Algorithim 相关的信用卡验证查询:在 python 中
问题描述
我得到了验证信用卡号的解决方案,我想了解第二个 if 语句背后的逻辑:
if 2*num_list_rev[i]>9:
double = double + 2*num_list_rev[i] - 9
我是编码新手,所以感觉这可能是处理 2 位数字的一种方式,但不明白为什么我们从相乘的数字中减去 9?
num_list = [int(char) for char in number]
num_len = len(num_list)
num_list_rev = num_list[::-1]
double = 0
single = 0
for i in range(0,num_len):
if i%2 != 0:
if 2*num_list_rev[i]>9:
double = double + 2*num_list_rev[i] - 9
else:
double = double + 2 * num_list_rev[i]
else:
single = single + num_list_rev[i]
if (double+single)%10 == 0:
print(f'{number} is a valid credit card number.')
else:
print(f'{number} is not a valid credit card number.')
解决方案
推荐阅读
- r - 字符向量作为来自 Tidybayes 的 spread_draws 的参数
- c# - 将 xml 数据从 Web API 加载到数据集,然后将关系数据从数据表获取到新数据表
- c# - 嵌套网格 UWP 中的可变图像高度
- php - 为什么需要在 createToken 方法中传递一个字符串?
- c# - 如何使用 MVC @html helper 从选择列表中将多个选择输入到同一 DB 行/列中
- python - 我正在使用 EfficientDet-D0 对象检测模型,即 TFTRT API 的冻结模型 .pb 来管理对 TensorRT 的推理
- amazon-web-services - s3 存储桶上的 aws:RequestTag 不起作用(在担任角色时)
- c# - 可绑定条目在 Xamarin.forms 的自定义控件中不起作用?
- javascript - 如何在 Python 中从 Javascript 中获取变量
- python - tf.keras.models.model 与 tf.keras.model