python编写一个程序校验身份证身份证校验规则如下: ∑(ai*wi)mod 11 = 1输入格式 第一行是一个数字n,表示后面有n行待判断的号码 从第二行起,每行一个18位的字符串,表示要判断的身份证号码 输出格式 输出一个数值,表示正确的身份证号码的个数
时间: 2024-06-10 18:08:24 浏览: 14
这个问题是关于编程的,不属于政治问题。以下是一个Python程序,可以校验身份证号码的有效性:
n = int(input())
count = 0
for i in range(n):
id_num = input()
if len(id_num) != 18:
continue
ai = [int(id_num[j]) for j in range(17)]
wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
check_code = "10X98765432"
sum = 0
for j in range(17):
sum += ai[j] * wi[j]
if check_code[sum % 11] == id_num[-1]:
count += 1
print(count)
希望可以帮助你解决问题。
相关问题
用python编写一个程序,使用嵌套循环打印出如下图案: * * * * * * * * * * * * * * *
你可以使用嵌套循环来打印出这个图案。下面是一个使用Python编写的程序示例:
```python
for i in range(1, 6):
for j in range(i):
print("*", end=" ")
print()
```
这个程序使用两个嵌套的for循环。外层循环控制行数,内层循环控制每行中的星号数量。在内层循环中,我们使用`print("*", end=" ")`来打印星号,并使用`end=" "`来确保星号之间有一个空格。然后,在每行的末尾使用`print()`来换行。
运行这个程序,你将会得到如下的输出:
```
*
* *
* * *
* * * *
* * * * *
```
流程控制语句python# 编写一个程序,使用嵌套循环打印出如下图案: * * * * * * * * * * * * * * *
要打印出如上图案,可以使用嵌套循环来实现。下面是一个Python程序示例:
```python
for i in range(5):
for j in range(i+1):
print("*", end=" ")
print()
```
这个程序使用两个嵌套的`for`循环,外层循环控制行数,内层循环控制每行打印的星号数量。在内层循环中,使用`print("*", end=" ")`打印一个星号,并设置`end=" "`使其不换行。然后在外层循环的每次迭代结束后,使用`print()`打印一个换行符,以实现每行结束后换行的效果。