当前位置:   article > 正文

python实验——字符串与列表的使用_python字符串操作输入身份证号

python字符串操作输入身份证号

1、通过用户输入的身份证号,输出对应的出生日期‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬程序运行的效果如下:‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

请输入身份证号:320705199605230529

出生日期:1996年05月23日

  1. import re
  2. def get_birthdate(id_card):
  3. pattern = r'^\d{18}$'#只会匹配由18个数字组成的字符串
  4. if not re.match(pattern, id_card):
  5. return None
  6. # 身份证号的第7位到第14位是出生日期
  7. birthdate = id_card[6:14]
  8. year = birthdate[:4]
  9. month = birthdate[4:6]
  10. day = birthdate[6:]
  11. return f"{year}{month}{day}日"
  12. # 用户输入身份证号
  13. id_card = input("请输入身份证号:")
  14. birthdate = get_birthdate(id_card)
  15. if birthdate:
  16. print("出生日期是:", birthdate)
  17. else:
  18. print("输入的身份证号无效")

2、自幂数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。例如153就是一个自幂(当n=3时也称为水仙花数),因为153=1^3+5^3+3^3。请按下面的运行结果找出用户输入范围内的所有自幂数。

  1. t = int(input('请输入10的n次幂:(n>3)'))
  2. n=10**t
  3. print(f"{n}以内的自幂数包括:",n)
  4. for i in range(100, n):
  5. s = 0
  6. p = str(i)
  7. for x in p:
  8. s += int(x) ** len(p)
  9. if s == i:
  10. print(i)

3、对于给定的字符串"Where there is a will, there is a way. The important point is that you must have the will to achieve success.",请统计该字符串中不重复的单词数,并把这些单词按字母顺序降序排列,输出效果如下所示:

  1. s = "Where there is a will, there is a way. The important point is that you must have the will to achieve success."
  2. s = s.replace(".", " ").replace(","," ")
  3. words = s.split() # 按空格分割单词
  4. words = list(set(words)) # 去重
  5. words.sort(reverse=True) # 排序
  6. print("不重复的单词数有:", len(words))
  7. print("单词按字母顺序降序排列:", words)

4、请按照教材教材第83页实训2中表3-5给出的数据完成食物菜单的建立与查询。建议使用一个列表存储食品大类,另一个列表存储各类食物的详细菜单。程序运行结果可以参考如下图:

  1. words = []
  2. menu=[]
  3. while True:
  4. word = input("请输入食品大类:(输入q退出食品输入)")
  5. menu.append(word)
  6. if word.lower() == "q":
  7. break
  8. food=input(f"请输入{word}的详细食物菜单,多个食物直接用空格分开:")
  9. words.append(food)
  10. menu=menu[0:-1]
  11. print("当前的食品大类包括:",menu)
  12. print("当前的详细食品菜单是:",words)
  13. while True:
  14. s=int(input("请输入要查询的食品大类(输入0则退出程序):"))
  15. if s==0:
  16. break
  17. print(f"{menu[s-1]}食品的详细食物菜单是{words[s-1].split()}")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/427165
推荐阅读
相关标签
  

闽ICP备14008679号