import re
def validate_id_number(id_number):
pattern = re.compile(r'^\d{17}[\dXx]$')
if not pattern.match(id_number):
return False
factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1]
check_code_dict = {0: '1', 1: '0', 2: 'X', 3: '9', 4: '8', 5: '7', 6: '6', 7: '5', 8: '4', 9: '3', 10: '2'}
check_code = check_code_dict[sum([int(id_number[i]) * factors[i] for i in range(17)]) % 11]
return check_code.upper() == id_number[-1].upper()
def get_birthday_and_gender(id_number):
birthday = id_number[6:14]
year = int(birthday[0:4])
month = int(birthday[4:6])
day = int(birthday[6:8])
if id_number[16] in ['0', '1', '2', '3', '4', '5']:
century = '19'
else:
century = '20'
gender_code = int(id_number[16])
if gender_code % 2 == 0:
gender = '女'
else:
gender = '男'
birthday = century + str(year) + '-' + str(month) + '-' + str(day)
return birthday, gender
id_number = input('请输入18位身份证号码:')
if validate_id_number(id_number):
birthday, gender = get_birthday_and_gender(id_number)
print('生日:', birthday)
print('性别:', gender)
else:
print('身份证号码不合法')
不知道你这个问题是否已经解决, 如果还没有解决的话:(1)注册腾讯云账号
登录腾讯云网址 https://cloud.tencent.com/ 注册。
(2)获取AppID、AppKey
在短信功能页面下,从应用管理>应用列表,获取ID、Key。
(3)创建签名
在短信功能页面下,进入国内短信>签名管理,创建签名。
(4)创建正文模板
在短信功能页面下,进入国内短信>正文模板管理,创建模版。并获取模板ID备用。
我非常乐意帮助你编写Python编程题目。以下是一些提示和指导:
确定题目类型和难度级别。你可以编写练习基本编程概念和语法的简单问题,也可以编写更复杂的问题,在其中应用函数、模块、类等高级概念。确保在编写题目之前,你要对目标学生的编程水平有清晰的了解。
选择适当的题目材料。这个步骤仅适用于特定类型的题目(比如写爬虫),但不管什么类型,材料的选择都十分重要。比较好的方式就是:从你自己的编程经验中选取一些实用的场景,然后编写对应问题,例如:建立一个联系人列表,制作一个文本编辑器和计算器等。
设计题目。在这个步骤中,你需要专注于设计具体的问题,并注意以下几点:
3.1 编写明确而详细的题目要求。这些要求应该让学生了解如何开始,并具体介绍需要完成的任务。
3.2 确定题目难度。你可以提供一些提示或建议,但最好不要直接给出答案。
3.3 在题目中留出一些自由度。这可以使学生在编写代码时更有创意,同时也可以帮助他们理解编程中不同的解决方案。
编写示例代码。提供示例代码可以帮助学生更好地理解题目,并开发出更好的解决方案。在编写示例代码时,应该遵循良好的编码风格和最佳实践。
准备测试和反馈机制。在编写问题的同时,你需要设置测试和反馈机制,确保学生能够及时了解自己的进展情况并获得实时的反馈。
以上是我建议的一些步骤和技巧,希望能够帮助你更好地开始Python编程之旅。如果需要进一步的指导,可以随时联系我!