※課題2を先に解いて、そのプログラムを課題1に用いる
In [35]:
def leap_year(y):
if y < 0:
print("Please input positive number.")
return
if y%4 == 0:
if y%400 == 0:
print("%d is leap year."%y)
return
elif y%100 == 0:
print("%d is NOT leap year."%y)
return
print("%d is leap year."%y)
return
else:
print("%d is NOT leap year."%y)
return
課題2への回答として1900年から2001年までのうるう年を探してみる。
In [31]:
for i in range(1900,2001):
leap_year(i)
少し書き換えて課題1を解いてみる。
In [41]:
def leap_year2(y):
if y < 0:
return 0
if y%4 == 0:
if y%400 == 0:
return 1
elif y%100 == 0:
return 0
return 1
else:
return 0
In [42]:
leap_years = [leap_year2(i) for i in range(1900,2201)]
print(sum(leap_years))
例えば、次のような形で聴衆のデータが与えられたとする。
In [44]:
audience = {"tanaka":(1980, 1), "suzuki":(2000, 3), "yamada":(1989, 2), "sato":(1992, 5), "ishii":(1978, 5)}
In [53]:
def ave_by_ly(a):
x = a.values()
num_ly = 0
point_ly = 0
num_not_ly = 0
point_not_ly = 0
for y, p in x:
if y < 0:
print("Please input positive number.")
return
if y%4 == 0:
if y%400 == 0:
num_ly += 1
point_ly += p
elif y%100 == 0:
num_not_ly += 1
point_not_ly += p
num_ly += 1
point_ly += p
else:
num_not_ly += 1
point_not_ly += p
print(y, p)
ave_ly = point_ly/num_ly
ave_not_ly = point_not_ly/num_not_ly
print("The average point of those who were born in leap year is {ave_ly}".format(**locals()))
print("The average point of those who were NOT born in leap year is {ave_not_ly}".format(**locals()))
return
In [54]:
ave_by_ly(audience)
In [ ]: