请设计程序实现输入18位身份证号码,辨其真伪。若为真,则进一步判断 性别;若 不是18位或身份号码非法 ,则提示重新输入。
时间: 2024-06-12 20:06:12 浏览: 25
这是一个比较复杂的程序,需要用到身份证号码的校验规则。以下是一个伪代码的实现:
```
while True:
id_num = input("请输入18位身份证号码:")
if len(id_num) != 18:
print("身份证号码长度不对,请重新输入!")
continue
# 身份证号码校验规则
# 具体规则可参考:https://zh.wikipedia.org/wiki/中华人民共和国居民身份证#校验码计算方法
if not (id_num.isdigit() and (int(id_num[17]) == sum((2 ** i) * int(id_num[17 - i]) for i in range(17)) % 11)):
print("身份证号码非法,请重新输入!")
continue
# 如果身份证号码合法,则进一步判断性别
if int(id_num[16]) % 2 == 0:
print("性别:女")
else:
print("性别:男")
break
```
在这个程序中,我们先通过一个 while 循环来不断要求用户输入身份证号码,直到输入合法为止。在每次循环中,我们先判断身份证号码的长度是否为 18 位,如果不是,则提示重新输入。然后,我们使用身份证号码的校验规则来判断该号码是否合法,如果不合法,则同样提示重新输入;否则,我们就认为该身份证号码是合法的,并进一步判断其性别。最后,程序退出 while 循环。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)