簡體   English   中英

為什么這個python代碼仍然沒有返回?

[英]Why this python code still returns none?

我寫了這個程序來計算你活過的天數,當你使用當前日期和你的出生日期作為輸入時(無論哪個第一個,只要它的格式: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)

當我復制粘貼您的代碼並運行它時,您的測試用例返回了 13359。 但是,我確實看到了您的錯誤。 year1 < year2 將返回 None 因為 past_presenter 返回 None 的測試用例,您在所有 if 語句的末尾都缺少 return 語句。 所有返回語句都嵌套在“if year1 > year2”中,因此當 year2>=year1 時它不返回任何內容。

問題已解決,因為代碼很好,但它正在測試的平台:' https://repl.it/languages/python ' 無論代碼如何,總是不輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM