a=input() if len(a)!=18: print("Error") else: b=int(a[0])*7+int(a[1])*9+int(a[2])*10+int(a[3])*5+int(a[4])*8+int(a[5])*4+int(a[6])*2+int(a[7])+int(a[8])*6+int(a[9])*3+int(a[10])*7+int(a[11])*9+int(a[12])*10+int(a[13])*5+int(a[14])*8+int(a[15])*4+int(a[16])*2 n=b%11 m=(12-n)%11 if m==a[-1]: print('Correct') else: print('Wrong') 为什么这段代码错啦
时间: 2023-08-28 15:34:28 浏览: 47
这段代码有一个明显的错误,即在第一行中使用了变量 a,但是在该行之前并没有定义变量 a。为了让代码正确运行,应该先定义变量 a,比如可以使用以下代码:
```
a = input("请输入身份证号码:")
if len(a) != 18:
print("Error")
else:
b = int(a[0]) * 7 + int(a[1]) * 9 + int(a[2]) * 10 + int(a[3]) * 5 + int(a[4]) * 8 + int(a[5]) * 4 + int(a[6]) * 2 + int(a[7]) + int(a[8]) * 6 + int(a[9]) * 3 + int(a[10]) * 7 + int(a[11]) * 9 + int(a[12]) * 10 + int(a[13]) * 5 + int(a[14]) * 8 + int(a[15]) * 4 + int(a[16]) * 2
n = b % 11
m = (12 - n) % 11
if m == int(a[-1]):
print('Correct')
else:
print('Wrong')
```
注意,在判断最后一位校验码是否正确时,需要将字符串类型的最后一位转换为整数类型,否则会一直输出 Wrong。
相关问题
【问题描述】输入两个正整数a,b,计算两个正整数各对应位乘积之和. 例如a=1123,b=405, 输出为19(1*0+1*4+2*0+3*5=19). 如果a,b不是正整数,输出error。 【输入形式】一行两个正整数,以1个空格分隔 【输出形式】一个正整数或者error补全片段def myFun(a,b): num=input().split() a=num[0] b=num[1] if a.isdigit() and b.isdigit(): #判断a,b是否都是数字 print(myFun(a,b)) #调用自定义函数 else: print("error")
以下是基于您提供的代码框架的Python代码实现:
```python
def myFun(a, b):
if not a.isdigit() or not b.isdigit():
return "error"
sum = 0
for i in range(len(a)):
if i >= len(b):
break
sum += int(a[i]) * int(b[i])
return sum
num = input().split()
a = num[0]
b = num[1]
print(myFun(a, b))
```
该程序定义了一个名为`myFun`的函数,该函数接受两个正整数`a`和`b`,并返回它们各对应位乘积之和。函数首先检查`a`和`b`是否都是数字,如果其中一个不是数字,则返回"error"。然后使用一个循环遍历`a`和`b`的每个数字,并计算它们的乘积之和。如果遇到`a`和`b`长度不一致的情况,则遍历到短的那个数字的最后一位即可。
接下来,程序从标准输入读取两个正整数,并将它们存储在名为`a`和`b`的变量中。然后调用名为`myFun`的函数,并将`a`和`b`作为参数传递给它。最后,将函数的返回值打印到标准输出。
【问题描述】输入两个正整数a,b,计算两个正整数各对应位乘积之和. 例如a=1123,b=405, 输出为19(1*0+1*4+2*0+3*5=19). 如果a,b不是正整数,输出error。 【输入形式】一行两个正整数,以1个空格分隔【输出形式】一个正整数或者error 【样例输入】1123 405 【样例输出】19 【样例输入】-1123 405.6 【样例输出】error 【样例输入】1#123 405 【样例输出】error def myFun(a,b): num=input().split() a=num[0] b=num[1] if a.isdigit() and b.isdigit(): #判断a,b是否都是数字 print(myFun(a,b)) #调用自定义函数 else: print("error") 将该代码中间部分补充完整而不需要修改,尤其是后面不要动,不要动给好的任何一句代码
```
def myFun(a,b):
num = input().split()
a = num[0]
b = num[1]
if a.isdigit() and b.isdigit():
res = 0
if len(a) != len(b):
return "error"
for i in range(len(a)):
if a[i].isdigit() and b[i].isdigit():
res += int(a[i]) * int(b[i])
else:
return "error"
return res
else:
return "error"
print(myFun(a,b))
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)