利乐饼. 2023-11-01 00:03 采纳率: 0%
浏览 3

请问一下Python代码问题是什么

img


在输入日期为2023-3-31后就没有输出了,还有在输入日期的月份为8月时显示e变量没有

  • 写回答

2条回答 默认 最新

  • 梦幻精灵_cq 2023-11-01 10:17
    关注
    • range函数是前含后不包

      img


      所以,您应该写32才包含31日。

    • 没有e变量,暂时没看出来,您发代码片吧😄午休时给您捋捋。

    • 您整段代码的功用是想输出所输入日期是当年的第n天吧,if太多,让人有些无所适从。中午我给捋捋,代码应该可以精简下。

    • 按您思路,重构代码。调试成功

      img


      img

    苗条优雅的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,平月+302月+leapyear函数返回值。
    
        return days
        
    
    if __name__ == '__main__':
        print(countDay(*map(int, input('\n输入(如2023-11-1):').strip().split('-')))) # map函数前面的*用于“破壳”,把map的三个元素赋值给year、month、day形参。
    
    

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月1日

悬赏问题

  • ¥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分钟内自动退出