用python解决,18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期, 第17位代表性别,奇数为男,偶数为女。 用户输入一个合法的身份证号,请输出用户的出生年月日,年龄和性别。(不要求较验输入的合法性)
时间: 2024-04-05 09:35:53 浏览: 256
好的,以下是 Python 代码实现:
```python
import datetime
# 用户输入身份证号码
id_card = input("请输入18位身份证号码:")
# 解析出生年月日
year = int(id_card[6:10])
month = int(id_card[10:12])
day = int(id_card[12:14])
print("出生年月日:{}年{}月{}日".format(year, month, day))
# 解析性别
gender = id_card[16]
if int(gender) % 2 == 1:
print("性别:男")
else:
print("性别:女")
# 计算年龄
now_year = datetime.datetime.now().year
age = now_year - year
print("年龄:{}岁".format(age))
```
该代码通过 `input()` 函数获取用户输入的身份证号码,然后按照题目要求解析出出生年月日和性别,并计算出年龄。注意,这里直接使用了 `datetime` 模块获取当前年份,因此需要确保机器的系统时间设置是正确的。
相关问题
有一身份证号,判断此人是否成年(截止到今天) #身份证分 15 位和 18 位 #15位身份证号码:第7、8位为出生年份(两位数), # 第9、10位为出生月份,第11、12位代表出生日期 #18位身份证号码:第7、8、9、10位为出生年份(四位数), # 第11、第12位为出生月份,第13、14位代表出生日期
假设身份证号码为 id_number,可以按照以下方式进行判断:
```python
import datetime
if len(id_number) == 15:
year = int("19" + id_number[6:8])
month = int(id_number[8:10])
day = int(id_number[10:12])
elif len(id_number) == 18:
year = int(id_number[6:10])
month = int(id_number[10:12])
day = int(id_number[12:14])
else:
print("身份证号码格式不正确!")
age = datetime.date.today().year - year
if (month, day) > (datetime.date.today().month, datetime.date.today().day):
age -= 1
if age >= 18:
print("此人已成年。")
else:
print("此人未成年。")
```
其中,第一个 if 判断身份证号码的长度是 15 位还是 18 位,并提取出出生年份、月份、日期;第二个 if 使用 datetime 模块计算出当前的年份,并计算出此人的年龄;最后判断此人是否已经成年。
用python编写 18 位身份证号码第7~10位为出生年份(4位数), 第11~12位为出生月份, 第13~14位代表出生目期,第17位代表性别,奇数为男, 偶数为女。用户输入一个合法的身份证号,请输出用户的出生年月日和性别。
在Python中,你可以通过字符串切片和条件判断来解析和获取身份证号码的信息。以下是一个简单的函数实现:
```python
def parse_id(id_number):
# 验证身份证号码长度
if len(id_number) != 18 or not id_number.isdigit():
return "输入的不是有效的18位身份证号码"
# 提取出生年月日和性别信息
birth_year = id_number[6:10] # 年份
birth_month = id_number[10:12] # 月份
birth_day = id_number[12:14] # 日
gender = '男' if id_number[16] % 2 else '女' # 性别
# 输出信息
return f"出生日期:{birth_year}-{birth_month}-{birth_day}, 性别:{gender}"
# 用户输入身份证号
id_input = input("请输入一个18位的身份证号码:")
output = parse_id(id_input)
print(output)
```
这个函数首先检查输入的身份证号码是否为18位数字。然后,它分别从指定位置提取出年份、月份、日子以及第17位的性别标志。最后,根据性别标志的奇偶性确定性别,并返回完整的出生日期和性别信息。
阅读全文