1章は基本的な文法事項の復習。高階関数とか思い出せてよかった。
p.24 フィボナッチ数列を求める方法の別解
#fibonattiをDPで求める n = int(input()) dp = [0] * (n+1) for i in range(1, n+1): if(i == 1 or i == 2): dp[i] = 1; else: dp[i] = dp[i-1] + dp[i-2] print(f"{n}番目のフィボナッチ数は{dp[n]}")
p.26 高階関数reduce, filterについて調べて実装
参考
from functools import reduce #高階関数 reduce, filter mul1 = reduce(lambda x, y: x*y, [2, 4, 6]) print(mul1) val_3_div = filter(lambda x:x%3==0, [1, 2, 3, 4, 5, 6]) print(val_3_div)
練習問題 1から50までの和を計算
li = [x for x in range(1, 51)] ans = reduce(lambda x, y: x+y, li) print(f"1から50の和は{ans}")
p.29演習問題 クラス作成
#四則演算クラス class MyCalcclass: #初期化 def __init__(self, x, y): self.x = x self.y = y def calc_add(self): return self.x + self.y def calc_sub(self): return self.x - self.y def calc_mul(self): return self.x * self.y def calc_div(self): if(self.y == 0): return "割り算はできない" else: return self.x / self.y instance_1 = MyCalcclass(3, 0) print(instance_1.calc_add()) print(instance_1.calc_sub()) print(instance_1.calc_mul()) print(instance_1.calc_div())