在输入日期为2023-3-31后就没有输出了,还有在输入日期的月份为8月时显示e变量没有
2条回答 默认 最新
- 梦幻精灵_cq 2023-11-01 10:17关注
range函数是前含后不包
所以,您应该写32才包含31日。没有e变量,暂时没看出来,您发代码片吧😄午休时给您捋捋。
您整段代码的功用是想输出所输入日期是当年的第n天吧,if太多,让人有些无所适从。中午我给捋捋,代码应该可以精简下。
按您思路,重构代码。调试成功
苗条优雅的python代码
#!/sur/bin/nve python # coding: utf-8 leapyear = lambda year: 29 if not year%4 and year%100 or not year%400 else 28 # 单行匿名函数lambda:三元操作语句计算输入年份2月的天数。(闰年规则:年份被4整除但不能被100整除,或者被400整除) def countDay(year, month, day): days = day # 输入年份最后一月的天数为总天数初值。 for m in range(1, month): # 遍历整月。 days += 31 if m in (1, 3, 5, 7, 8, 10, 12) else 30 if m in (4, 6, 9, 11) else leapyear(year) # 大月+31,平月+30,2月+leapyear函数返回值。 return days if __name__ == '__main__': print(countDay(*map(int, input('\n输入(如2023-11-1):').strip().split('-')))) # map函数前面的*用于“破壳”,把map的三个元素赋值给year、month、day形参。
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
- ¥15 使用百度地图api 位置函数报错?
- ¥15 metamask如何添加TRON自定义网络
- ¥66 关于川崎机器人调速问题
- ¥15 winFrom界面无法打开
- ¥30 crossover21 ARM64版本安装软件问题
- ¥15 mymetaobjecthandler没有进入
- ¥15 mmo能不能做客户端怪物
- ¥15 osm下载到arcgis出错
- ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出