【Python处理节假日相关问题】

小tips

read 读取文件的所有内容,最终是字符串形式 “ ”各行与各行之间用换行符分隔开
readlines 读取文章的所有内容,最终是列表类型 [ ],用逗号将每行区分开
readline 只有一行内容的字符串‘ ’

题目

现给出一个csv文件,内容示例如下:
在这里插入图片描述
以第一行为例,1230表示12月30日,0101表示1月1日
要求:读入CSV文件数据,获得用户输入,用户键盘输入整数作为序号,序号建采用空格分隔,以回车结束。屏幕输出这些序号对应的节假日名称和假期范围,每个节假日的信息一行。在本次屏幕显示完成后,重新回到输入序号的状态。
参考输入输出格式如下:
请输入节假日序号:1 5 14
元旦(1)假期是12月30日至01月01日之间
端午节(5)假期是06月16日至06月18日之间
输入节假日编号有误!
请输入节假日序号:

下面是代码:

fi=open("PY301-vacations.csv","r") #读取CSV文件
ls = [] #创建一个新的空列表
for line in fi:  #遍历fi
      ls.append(line.strip("\n").split(",")) #去掉CSV文件的换行符,并将各行用逗号隔开
s=input("请输入节假日序号:").split(" ")  #让用户输入节假日序号,序号间用空格隔开
while True:            #设置一个循环
      for i in s:      #读取输入的节假日序号
            flag=False
            for line in ls:
                  if i== line[0]:    #如果用户输入的序号与列表里第一个元素相同
                        print("{}({})假期是{}月{}日至{}月{}日之间".format(line[1],line[0],line[2][:2],line[2][2:],line[3][:2],line[3][2:]))
                        flag=True    #如果if语句匹配不成功,此句不执行;如果if语句匹配成功,不执行下面的两行代码
            if flag == False:
                        print("输入节假日序号有误!")
      s=input("请输入节假日序号:").split(" ")    #重新开始第二次输入
fi.close()   #关闭fi

最终结果如下图所示:
在这里插入图片描述
一定要注意缩进格式!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值