我想收到總共多少年/月/周/天,我希望輸出說 732 是 2 年、0 個月、0 周、2 天,但我會收到“它已經是:2 年,自變數輸入以來的 24 個月、105 周、732 天"
*##variables / user input*
days = int(input("Enter Number of Days: "))
weeks = days / 7
months = days / 30.4
years = days / 365
*#if conditions here*
if days >= 7:
weeks = weeks 1
elif weeks >= 4:
months = months 1
elif months >= 12:
years = years 1
*##print command for output*
print("it has been: ", int(years), "Years", ",", int(months)
, "Months", ",", int(weeks), "Weeks", ",", int(days), "Days","Since Variable inputted")
我知道我做錯了什么,只是我不知道解決方案:D感謝您提供任何資訊豐富的答案
uj5u.com熱心網友回復:
有很多方法可以解決這類問題。這是一種使用divmod的解決方案。
days = int(input("Enter Number of Days: "))
years, days = divmod(days, 365)
months, days = divmod(days, 30.4)
weeks, days = divmod(days, 7)
print(f"It has been: {years} years, {months} months, {weeks}, weeks, {days} days,"
" since the inputted variable.")
divmod將兩個數相除并回傳商和余數。在上面的代碼中,我們將天數除以 365,將商存盤為年數,并將余數存盤為天數——用剩余天數覆寫之前存盤在 days 變數中的任何內容。然后重復此程序以計算月、周和天
uj5u.com熱心網友回復:
你真的不需要任何 if 陳述句。這是一個比上述更數學的解決方案:
days = int(input("Enter Number of Days: "))
years = days // 365
months = (days - 365 * years) // 30.4
weeks = (days - (365 * years 30.4 * months))//7
days = days - (365 * years 30.4 * months 7 * weeks)
print("it has been: ", int(years), "Years", ",", int(months), "Months", ",", int(weeks), "Weeks", ",", int(days), "Days","Since Variable inputted")
這只是重復的減法/除法。
此外,在處理更復雜的專案時,解釋您為嘗試修復它所做的作業、您的方法、您想要什么以及由于您說您知道自己做錯了什么,這可能會很有用,您應該說,如果你有任何資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/512678.html
上一篇:在javascript中創建條件
