问题描述
输入一串字符,由字母、数字和空格组成,长度< 1000,判断其中是否存在日期格式的数据。日期格式的数据具有如下的特征,连续包含年份和月份信息。年份信息是指连续的四个数字,之后是Jan, Feb, Mar,Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec这些字符串之一,如”2019Nov" 就是符合日期格式要求的数据。
解决方案
从字符串中采取切片的方式来进行指定输出,用条件判断来进行限制输出想要的格式
(1)设置切片条件和输入
list1 = ['Jan', 'Feb', 'Mar','Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] list3 = ['0','1','2','3','4','5','6','7','8','9'] s = str(input()) |
---|
(2)建立循环和条件
for n in range(len(s)): for i in list1: if i in s[n:n+3]: |
---|
(3)进行输出判断
list2 = s[n-4:n] a = 0 for d in list2: if d in list3: a+=1 if a == 4: m = 0 print(list2+s[n:n+3]) if m != 0: print('2000Jan') |
---|
(4)完整代码如下
list1 = ['Jan', 'Feb', 'Mar','Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] list3 = ['0','1','2','3','4','5','6','7','8','9'] s = str(input()) for n in range(len(s)): for i in list1: if i in s[n:n+3]: list2 = s[n-4:n] a = 0 for d in list2: if d in list3: a+=1 if a == 4: m = 0 print(list2+s[n:n+3]) if m != 0: print('2000Jan') |
---|
结语
该题不是很难但要掌握好循环和切片的利用,设置好输出条件和切片条件。
END
实习编辑 | 王楠岚
责 编 | 王 曦