为什么这个python代码仍然返回none?

2024-06-29 01:01:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我写这个程序是为了计算你已经活了多少天,当你使用当前日期和你的出生日期作为输入时(不管是哪一个,只要它的格式是:y,m,d。这是我的第一个代码,所以它可能结构不好,但我试着看看为什么它返回无?你知道吗

def past_presenter(year1,month1,day1,year2,month2,day2):
  if year1>year2:
    year1,month1,day1,year2,month2,day2 = year2,month2,day2,year1,month1,day1
    return year1,month1,day1,year2,month2,day2
  else:
    if month1>month2:
      year1,month1,day1,year2,month2,day2 = year2,month2,day2,year1,month1,day1
      return year1,month1,day1,year2,month2,day2
    else:
      if day1>day2:
        year1,month1,day1,year2,month2,day2 = year2,month2,day2,year1,month1,day1
        return year1,month1,day1,year2,month2,day2

def absolute(y,m,d):
  if y<0:
    y=y*-1
  if m<0:
    m=m*-1
  if d<0:
    d=d*-1
  return y,m,d

def days(year1,month1,day1,year2,month2,day2):
  y=year2-year1
  m=month2-month1
  d=day2-day1
  y,m,d = absolute(y,m,d)
  days=d+(m*30)+(y*30*12)
  return days


def daysBetweenDates(year1,month1,day1,year2,month2,day2):
  year1,month1,day1,year2,month2,day2 = past_presenter(year1,month1,day1,year2,month2,day2)
  dd = days(year1,month1,day1,year2,month2,day2)
  return dd


print daysBetweenDates(2017,2,10,1980,1,1)

Tags: returnifdefdayselsepastabsolutepresenter
2条回答

问题得到了解决,因为代码很好,但是测试它的平台:“https://repl.it/languages/python”总是不输出任何代码

当我复制粘贴您的代码并运行它时,您的测试用例返回了13359。不过,我确实明白你的错误。在测试用例中,year1<;year2将返回None,因为过去的演示者返回None,所以在所有if语句的末尾缺少一个return语句。所有return语句都嵌套在“if year1>;year2”中,因此当year2>;=year1时,它不返回任何内容。你知道吗

相关问题 更多 >