0
所以我正在學習Python dataquest.io。我剛剛完成了初學者任務。其中一個挑戰的問題,我認爲我已經完成了(下面的代碼),是:Python - 根據兩個變量打印
編寫可以跨年提取相同的價值觀和 計算連續值之間的差異,顯示的功能,如果 出生人數正在增加或減少。例如,在1994年到2003年間,每週六的出生人數是如何變化的?
然而,我怎樣才能使打印結果告訴讀者什麼時間段是得到它。例如,當column == 1
,值1表示1月。但是,當column == 2
時,值1表示「月的第一個月」。那麼什麼樣的價值取決於哪一列。我怎樣才能把這個有意義的東西傳達給讀者,這是什麼叫我下次知道的。僅僅是寫一個長長的清單if
和and
陳述的問題?
謝謝!
我的代碼:
# year,month,date_of_month,day_of_week,births
# 0 1 2 3 4
def year_range(start_year, end_year):
# years must be bewtween 1994 and 2003
if end_year > 2003:
print ("End year too high")
return
if start_year < 1994:
print ("Start year too low")
return
# for each year from start to end
years = []
for x in range(end_year - start_year + 1):
years.append(start_year + x)
return years
def yearly_diffs(data, column, value, start_year, end_year):
# column = 0-3
# value depends on col, but 1-6 are always okay
if column == 0:
period = 'year'
if column == 1:
period = 'month'
if column == 2:
period = 'day of month'
if column ==3:
period = 'day of week'
years = year_range(start_year, end_year)
period_births = {}
for year in years:
period_births[year] = 0
for x in data:
births = x[4]
if x[0] == year and x[column] == value:
period_births[year] += births
changes = {}
for x in years:
if x != start_year:
changes[x] = period_births[x] - period_births[x-1]
print ('Here are the yearly values for births for:\n{} (period)\n{} (value in period)'.format(period, value))
return period_births, changes