I am a teacher!

导航

习题解析之:个人信息提取

【问题描述】

用户输入自己的个人信息,格式如下:

0122923450321 王昊 法学1801 河北 2001年

数据分别表示:学号 姓名 专业班级 籍贯 出生年份,各数据间空格间隔

有些用户没有按照规则输入数据,输入自己出生年份的时候写成了类似‘1900年生’或‘出生于1985’或‘19岁生于2006年11月’的数据格式。请注意程序此时仍然需要正确读取该项数据,本题保证这些用户输入时一定只含有1个4位数字连续组成的年份数据。

请按照输出样式输出姓名,班级,出生年份。

 

输入格式
按如下示例,在一行内依次输入5个字符串,分别表示:学号 姓名 专业班级 籍贯 出生年份,各数据间空格间隔

0122923450321 王昊 法学1801 河北 2001年

输出格式
按如下示例,分行依次输出姓名,班级,出生年份

姓名:王昊
班级:法学1801
出生:2001年

示例
输入:

0122923450321 王昊 法学1801 河北 2001年

输出:

姓名:王昊
班级:法学1801
出生:2001年

【编程思路】

        将一行输入的字符串用 input().split() 函数拆分为含 5 个子字符串的列表 info,则 info[0] 就是学号,info[1] 就是姓名,info[2] 就是专业班级,info[3] 就是籍贯,info[4] 就是出生年份。

        本题的关键是要从输入的出生年份中正确提取年份数据。在 info[4] 字符串中,有类似1900年生”或“出生于1985”或“19岁生于2006年11月的数据格式,但题目保证出生年份输入时一定只含有1个4位数字连续组成的年份数据。

        因此,可用循环  for i in range(len(info[4]) - 3):  依次切分出出生年份信息中的连续 4 个字符 info[4][i:i + 4],如切分出的连续 4 个字符均是数字,则就是需要提取的年份数据。

        str.isdigit() 函数用于判断字符串是否全部由数字字符组成,若字符串全部由数字字符组成,返回值为 True;否则为 False。

        编写的源程序如下:

        image

posted on 2025-11-21 14:56  aTeacher  阅读(0)  评论(0)    收藏  举报