编写程序用来检测用户输入的一个13位数字能否通过EAN13条形码的校验(校验规则请查看文件EAN.rtf),能通过请输出:C1 C2 校验已通过;否则输出:C1 C2 校验未通过。(提示:C1为条形码前12位奇数位数据和,C2为前12 位偶数位数据和*3,C1+C2的个位=第13 位则校验通过,本题可转为字符串操作,但不能更改输入语句!)如:程序运行时输入8270784406527,则输出显示:31 66 校验已通过
时间: 2024-02-11 21:05:19 浏览: 20
好的,我会为您编写一个Python程序来检测EAN13条形码的校验。以下是程序代码:
```python
ean = input()
odd_sum = 0
even_sum = 0
for i in range(12):
if i % 2 == 0:
odd_sum += int(ean[i])
else:
even_sum += int(ean[i])
c1 = odd_sum
c2 = even_sum * 3
check_sum = (c1 + c2 + int(ean[12])) % 10
if check_sum == 0:
print(str(c1) + " " + str(c2) + " 校验已通过")
else:
print(str(c1) + " " + str(c2) + " 校验未通过")
```
您只需输入一个13位的数字,程序将计算并输出校验结果。注意:输入的数字必须为13位才能通过程序的校验。
相关问题
请用编写程序用来检测用户输入的一个13位数字能否通过EAN13码的校验
好的,以下是 Python 代码示例,用于检测用户输入的 13 位数字是否符合 EAN13 码的校验:
```python
def is_valid_ean13(code):
"""
判断是否为合法的 EAN13 码
"""
if len(code) != 13 or not code.isdigit():
return False
digits = [int(d) for d in code]
check_sum = sum(digits[::2]) + sum(digits[1::2]) * 3
return check_sum % 10 == 0
# 测试
code = input("请输入一个13位数字:")
if is_valid_ean13(code):
print("该数字可以通过EAN13码的校验!")
else:
print("该数字不符合EAN13码的校验!")
```
使用方法:将以上代码复制到 Python 环境中并运行,输入一个 13 位数字进行测试。如果输入的数字符合 EAN13 码的校验规则,则输出“该数字可以通过EAN13码的校验!”;否则输出“该数字不符合EAN13码的校验!”。
为 (C1 + C2)的个位数字 则:校验位数字C为10-CC的个位数字。 请编写程序用来检测用户输入的一个13位数字能否通过EAN13码的校验,能通过请输出:校验已通过;否则输出:校验未通过。
下面是 Python 代码实现:
```python
def check_EAN13(code):
"""
检查 EAN13 码的校验位是否正确
:param code: 待检验的 EAN13 码,字符串类型
:return: 校验通过返回 True,否则返回 False
"""
if len(code) != 13:
return False
# 计算校验位
odd_sum = sum(int(code[i]) for i in range(0, 12, 2))
even_sum = sum(int(code[i]) for i in range(1, 12, 2))
check_digit = (10 - (odd_sum + even_sum * 3) % 10) % 10
return check_digit == int(code[-1])
# 示例代码
code = "6901234567893"
if check_EAN13(code):
print("校验已通过")
else:
print("校验未通过")
```
上述代码中,`check_EAN13()` 函数用来检验 EAN13 码的校验位是否正确。其中,首先判断码的长度是否为13位,然后根据 EAN13 码的计算规则计算出校验位,最后与输入的校验位进行比较,如果相同则返回 True,否则返回 False。