【问题标题】:While loops in Procedures过程中的 While 循环
【发布时间】:2015-06-20 03:51:41
【问题描述】:

我正在尝试输出 1 到 30 天,但它不起作用,并显示您的代码没有显示任何输出

这是我的代码:

def nextDay(year, month, day):  
        day = 0   
        while (day < 30):  
           day = day + 1
           print day  

这就是他们让我做的事情。但我被困在白天的部分。抱歉,我注意到我用的是月份而不是日期,所以我修复了它,但这是我最后想要达到的。

定义一个简单的 nextDay 过程,假设每个月有 30 天。

例如:

nextDay(1999, 12, 30) => (2000, 1, 1)  
nextDay(2013, 1, 30) => (2013, 2, 1)  
nextDay(2012, 12, 30) => (2013, 1, 1)    (even though December really has 31 days)


def nextDay(year, month, day):
"""   
Returns the year, month, day of the next day.  
Simple version: assume every month has 30 days.  
"""
# YOUR CODE HERE  
return

【问题讨论】:

  • print month放在month = month + 1之后
  • 我输入了打印月份,它仍然给了我相同的答案
  • 你只想输出1到30?
  • 你能展示整个程序吗?
  • 在一张纸上手动完成。取一个日期并在其上添加一天以生成 下一个 日期。多次这样做,直到您注意到添加一天的过程模式。然后用文字描述这种模式。然后试着把文字变成代码。

标签: python loops while-loop procedure


【解决方案1】:

如果您尝试输出 1 到 30,这将起作用...

for x in range(1, 31):
    print 'Day: %d' % x

我根本不明白你的功能,因为它没有意义。

另外,我真的不明白你为什么要使用 while 循环,因为它比 range 和 xrange 都慢。

【讨论】:

  • 这就是为什么我要寻求帮助。我是编码新手,不明白发生了什么,这就是我在这里寻求帮助的原因。请建设性的批评,少有居高临下的评论。谢谢
  • 当您甚至不向我们提供您的代码时,您希望其他人如何帮助您? @kevinwang1219
  • 这真是没救了。
【解决方案2】:

你想要这个

 def nextDay(year, month, day):
     if day == 30:
         if month == 12:
             day, month = 1, 1
             year+=1
         else:
             month+=1
     else:
         day+=1
     return (year, month, day)

>>>nextDay(2012, 12, 30)
(2013, 1, 1)

【讨论】:

    【解决方案3】:

    我希望这是你需要的。

    def nextDay(year, month, day):
        day += 1
        if day > 30:
            day = 1
            month += 1
            if month > 12:
                month = 1
                year += 1
        return (year, month, day)
    

    您的代码没有显示任何内容,因为我认为您没有调用该函数。

    【讨论】:

      猜你喜欢
      • 2017-09-21
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 2021-06-27
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多