python-3.x 为什么我从天数中找出整数年、整数月和整数天的过程不起作用?

c7rzv4ha  于 2022-12-20  发布在  Python
关注(0)|答案(1)|浏览(103)

我需要从输入的天数中找出整数年数、整数月数和整数天数,但是,我的过程不起作用,我得到了错误的答案。
注:假设每年为365天,每月为30天。另外,请不要考虑闰年。

user=int(input("Please enter the number of days: "))

def year(num):
  year=int(num/365)
  month=int((num%365)/30)
  day=num%30
  print(f"{year} years, {month} months and {day} days")

year(user)

我正在得到11年10个月10天作为输出,然而,问题提示也给了我一些示例输出,在他们的示例输出中,4330的输出是11年10个月15天,为什么我们得到不同的输出?我的代码完美无瑕,我正在得到我期望得到的,然而,我期望的输出与提示符中给出的输出不匹配。

nmpmafwu

nmpmafwu1#

我不知道你为什么要用day=int((((num/365-int(num/365))*12)-month)*30)来计算天数,我无法从逻辑上理解,一个非常简单、可读的方法是:

def year(num):
    year=num//365
    month=(num%365)//30
    day=num-(year*365)-(month*30)
    print(f"{year} years, {month} months and {day} days")

year(4330) # prints 11 years, 10 months and 15 days
    • 编辑:**

day=num%30不起作用,因为它没有考虑到一年有365天的事实。考虑num = 730,它是2年零0天。使用公式,您将得到day = 10,这是错误的。

相关问题