优客文库提供全面的范文格式和文档模板,包括申请书、合同、借据、证明、求职信等,助力您快速撰写专业文档。

18位身份证中数字包含如下信息: (4)第7~14位数字表示:出生年、月、日;   (6)第17位数字表示性别:奇数表示男性,偶数表示女性;  (7)第18位数字是校检码:也有的说是个人信息码,一般是

来自 广东省广州市 的网友 时间: 热度:20°C 加入收藏 我要投稿 点赞(2)
首先,我们需要从输入的字符串中提取出性别位和出生年月日。

性别位是第17位数字,我们可以通过索引来获取,索引从0开始,所以性别位的索引是16。

出生年月日是第7~14位数字,我们可以通过切片操作来获取,索引从0开始,所以出生年月日的索引范围是6~13。

接下来,我们需要计算年龄。年龄是根据当前年份减去出生年份得到的。由于题目中没有给出当前年份,我们可以假设当前年份为输入的年月日的年份。

最后,我们需要根据性别位的奇偶性来判断性别,奇数表示男性(male),偶数表示女性(female)。

下面是解析过程:

1. 提取性别位:`sex_digit = id_str[16]`
2. 提取出生年月日:`birth_date_str = id_str[6:14]`
3. 计算年龄:`age = current_year - birth_year`,其中`current_year`为输入的年月日的年份,`birth_year`为出生年份。
4. 判断性别:如果`sex_digit`为奇数,则性别为男(male);如果为偶数,则性别为女(female)。

下面是代码实现:

```python
id_str = input("请输入18位身份证号:")
current_year = int(input("请输入计算年龄的年份:"))

sex_digit = id_str[16]
birth_date_str = id_str[6:14]
birth_year = int(birth_date_str[:4])

age = current_year - birth_year

if int(sex_digit) % 2 == 0:
sex = "female"
else:
sex = "male"

print(sex)
print(age)
```

例如,输入:

```
3621011997070407402019 9 7
```

输出:

```
female
2
```
221381
领取福利

微信扫码领取福利

微信扫码分享

阅读并接受《用户协议》
注:各登录账户无关联!请仅用一种方式登录。


用户注册协议

一、 本网站运用开源的网站程序平台,通过国际互联网络等手段为会员或游客提供程序代码或者文章信息等服务。本网站有权在必要时修改服务条款,服务条款一旦发生变动,将会在重要页面上提示修改内容或通过其他形式告知会员。如果会员不同意所改动的内容,可以主动取消获得的网络服务。如果会员继续享用网络服务,则视为接受服务条款的变动。网站保留随时修改或中断服务而不需知照会员的权利。本站行使修改或中断服务的权利,不需对会员或第三方负责。

关闭