に応じて印刷するので、dataquest.ioでPythonを学んでいます。私はちょうど初心者ミッションを完了しました。私は(以下コード)を達成したと思うチャレンジ質問の一つは、次のとおりです。Python - 2つの変数
は年間で同じ値を抽出し、 が出産の場合 数を表示するように連続した値の差を計算する関数を書きます増減している。たとえば、1994年から2003年にかけて、土曜日の出生数は毎年どのように変化しましたか? 印刷結果は、期間が何であるかを読者に伝えるように、私はそれを得ることができる方法
しかし
、。たとえば、column == 1
の場合、値1は1月を意味します。ただし、column == 2
の場合、値1は「月の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