2022全国高校计算机能力挑战赛决赛python组编程计挑赛决赛3

输入格式:
一个日期 (格式:年-月-日)
(1)算法中要能够自动对输入的日期进行判断,若年份不是2022年或月份不是1月份至8月份中的某一个月份值,则输出“数据输入错误”;
(2)算法中能够对输入的“日”的数字进行判断,要按照实际情况进行判断,如1,3,5,7月份为31天,4,6,8月份为30天,2月份若是闺年则最多29天,非闺年则最多28天。若不在范围内,则输出对应的错误,如输入2022-1-32,则输出“1,3,5,7月份的日期应该是1-31日”
(3)若输入的日期格式和范围完全正确,则输出该日期对应的天气情况,包括日期、天气情况、最低温度、最高温度和风力风向情况。
注意: 为方便机器阅卷,请将data5.txt下载到本地运行,上传代码时务必将本地地址替换成/home/dependent files/data5.txt (线上地址),若是不替换可能导致机器阅卷失败,导致您0分
输出格式:
字符串形式
输入样例1:
2022-3-31
输出样例1:
[2022年03月31日,小雨/阴,6°C,11°C,东北风3-4级/东北风3-4级7]

# 从键盘输入一个日期(格式:年-月-日)
date_input = input('')

# 解析输入的日期
year, month, day = date_input.split('-')
year, month, day = int(year), int(month), int(day)

# 判断年份是否是 2022 年,月份是否在 1 月到 8 月之间
if year != 2022 or month < 1 or month > 8:
    print('数据输入错误')

# 判断日期是否在对应月份的合法范围内
else:
    # 1, 3, 5, 7 月份最多 31 天
    if month in (1, 3, 5, 7) and day > 31:
        print('1, 3, 5, 7 月份的日期应该是 1-31 日')
    # 4, 6, 8 月份最多 30 天
    elif month in (4, 6, 8) and day > 30:
        print('4, 6, 8 月份的日期应该是 1-30 日')
    # 2 月份最多 29 天(闰年)或 28 天(非闰年)
    elif month == 2 and (year % 4 != 0 or (year % 100 == 0 and year % 400 != 0)) and day > 28:
        print('2 月份应该是 1-28 日')
    elif month == 2 and (year % 4 == 0 or (year % 100 != 0 and year % 400 == 0)) and day > 29:
        print('2 月份应该是 1-29 日')
    # 输入的日期格式和范围完全正确
    else:
        # 输出该日期对应的天气情况,包括日期、天气情况、最低温度、最高温度和风力风向情况

        # print(f'[{year}年{month:02d}月{day:02d}日,小雨/阴,6°C,11°C,东北风3-4级/东北风3-4级7]')

        ..............对着文件提取数据,没有保存文件没有办法复盘重新写,这是比赛写的骗分的写法。。。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值