1
我剛開始學習計算機科學,我對python 3和編碼一般都很陌生。我們的第一項任務是使用Zellers Concruence來計算一週中的某一天,並且關於我編寫的代碼我有幾個問題。使用Zeller的一致性的一週中的一天 - Python 3
year = int(input("Year: "))
while not int(year) in range(1583, 10000):
year = input("Out of allowed range 1583 - 9999. Please enter a valid
number: ")
month = int(input("Month: "))
while not int(month) in range(1, 13):
month = input("Out of allowed range 1 - 12. Please enter a valid number: ")
if month == 1 or month == 2:
month += 12
year -= 1
day = int(input("Day: "))
while not int(day) in range(1, 32):
day = input("Out of allowed range 1 - 31. Please enter a valid
number: ")
result = (day + 13 * (month+1) // 5 + year + year // 4
- year// 100 + year // 400) % 7
weekday = {0: "Saturday",1: "Sunday", 2: "Monday",3: "Tuesday",4:
"Wednesday",5: "Thursday",6: "Friday"}
print("The day is " + weekday[int(result)] + ".")
首先,我應該確保日期範圍與正確的月份有關。例如,當月份輸入爲1,3,5,7,8,10或12時,日間間隔應爲1 - 31.如果月份輸入爲4,6,9或11,則日間間隔應爲1- 30。最後,我必須考慮閏年。我不知道如何編寫這些要求。
另外,所有的批評都是值得歡迎的。我知道這很不體面,所以請讓我知道我可以做得更好!
對於「我應該確保日期範圍與正確的月份相關。」如果月份在[1,3,5,7,8,10,12]:valid_days = range(1,32)elif month in [4,6,9,11]:valid_days = range(1,31 ) – BoboDarph
我會說只是通過這個:https://www.codecademy.com/learn/learn-python你正在尋找做什麼可能只是硬編碼 – sniperd
要確定是否是閏年,你需要檢查是否年份可以被4整除,如果它可以被400整除,但不能被100整除。你可以這樣做:is_leap = year%4 == 0 and(year%100!= 0 or year%400 = = 0) – BoboDarph