节假日---列表、split()函数、strip()函数的应用

题目描述

给出一个2021年的节假日的放假日期CSV文件(PY001-vactorions.csv),内容如下:

在这里插入图片描述
问题1:根据用户输入的节假日名称,输出此节假日的假期范围

输入

春节

输出

春节的假期位于0215-0221之间

代码实现

fi=open("PY301-vacations.csv","r")#以读的方式打开文件
ls = []#定义一个列表
for line in fi:#以逐行的方式进行读取文件ls.append(line.strip("\n").split(","))#使用strip()函数清除掉换行符,然后通过split()函数再以逗号的方式进行分隔存储在列表中
fi.close()#记得对于打开一个文件并且处理后要及时关闭,否则会造成数据的丢失
s=input("请输入节假日名称:")
for line in ls:#以逐行的方式进行扫描列表if s==line[1]:#列表中的第一个数据为[1,元旦,1230,0101],所以line[1]为节日名称print("{}的假期位于{}-{}之间".format(line[1],line[2],line[3]))

问题2:用户键盘输入一组范围是1-7的整数作为序号,序号间采用空额分隔,以回车结束。屏幕输出这些序号对应的节假日的名称、假期范围,每个节假日的信息为一行。本次屏幕显示完成后,重新回到输入序号的状态。

输入

1 5

输出

元旦 (1)假期是12月30日至01月01日之间
端午节(5)假期是06月16日至06月18日之间
请输入节假日序号:

代码实现

fi=open("PY301-vacations.csv","r")
ls = []
for line in fi:ls.append(line.strip("\n").split(","))
fi.close()
while True:s=input("请输入节假日序号:").split(" ")#由于可以输入多个节假日的序号,所以需要进行逐个的遍历访问,所以通过split()函数来存放在列表中进行方便访问for i in s:for line in ls:if i==line[0]:print("{}({})假期是{}月{}日至{}月{}日之间".format(line[1],line[0],line[2][0]+line[2][1],line[2][2]+line[2][3],line[3][0]+line[3][1],line[3][2]+line[3][3]))s=input("请输入节假日序号:").split(" ")

说明:
在这里插入图片描述
问题3:在问题2的基础上进行修改,对键盘输入的每个序号做合法性的处理。如果输入的数字不合法,请输出“输入节假日编号有误!”,继续输出后续信息,然后重新回到输入序号的状态。

输入

请输入节假日序号:5 14 11

输出

端午节假期是06月16日至06月18日之间
“输入节假日编号有误!
“输入节假日编号有误!
请输入节假日序号:

代码实现

fi=open("PY301-vacations.csv","r")
ls = []
for line in fi:ls.append(line.strip("\n").split(","))
fi.close()
while True:s=input("请输入节假日序号:").split(" ")#由于可以输入多个节假日的序号,所以需要进行逐个的遍历访问,所以通过split()函数来存放在列表中进行方便访问for i in s:flag=falsefor line in ls:if i==line[0]:print("{}({})假期是{}月{}日至{}月{}日之间".format(line[1],line[0],line[2][0]+line[2][1],line[2][2]+line[2][3],line[3][0]+line[3][1],line[3][2]+line[3][3]))flag=Trueif flag==false:print("输入节假日编号有误!")s = input("请输入节假日序号:").split(" ")
fi.close()


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部