Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Python講座第3回.pdf
Search
sk
May 23, 2019
Education
0
62
Python講座第3回.pdf
sk
May 23, 2019
Tweet
Share
More Decks by sk
See All by sk
Python講座演習4.pdf
shuy_k3
0
73
Python2019-2
shuy_k3
0
62
Python2019-1
shuy_k3
0
89
Other Decks in Education
See All in Education
SARA Annual Report 2024-25
sara2023
1
180
Data Management and Analytics Specialisation
signer
PRO
0
1.4k
Pythonパッケージ管理 [uv] 完全入門
mickey_kubo
20
14k
Tangible, Embedded and Embodied Interaction - Lecture 7 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.7k
2025年度春学期 統計学 第2回 統計資料の収集と読み方(講義前配付用) (2025. 4. 17)
akiraasano
PRO
0
140
アウトプット0のエンジニアが半年でアウトプットしまくった話 With JAWS-UG
masakiokuda
2
310
Education-JAWS #3 ~教育現場に、AWSのチカラを~
masakiokuda
0
170
人になにかを教えるときに考えていること(2025-05版 / VRC-LT #18)
sksat
4
1k
データ分析
takenawa
0
5.6k
Virtual and Augmented Reality - Lecture 8 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.7k
2025/06/05_読み漁り学習
nag8
0
140
Gamified Interventions for Composting Behavior: A Case Study Using the Gamiflow Framework in a Workplace Setting
ezefranca
1
120
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Scaling GitHub
holman
459
140k
Six Lessons from altMBA
skipperchong
28
3.9k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Music & Morning Musume
bryan
46
6.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Transcript
Python講座第3回
前回の復習(関数) 復習問題 引数を入力させて、 その階乗を計算し、コンソールに出力する関数。
解答例
再帰関数 再帰関数とは? →関数の中で自身を呼び出す関数 例えば →
階乗を計算する関数(再帰ver)
解説 引数に10を入れたため、factrial(x - 1)*x 、 つまりfactrial(9)*10が呼び出される。 factrial(9)では、factrial(8)*9が呼び出される。
最終的に… 最終的にfactrial(2)においてfactrial(1)*2が呼び出 される。 これにより、factorial(2)の値が決まるため、 factorial(3)→factorial(4)→…→ factorial(10)の順 に解決されていく。
再帰関数を使うメリット 複雑な繰り返しを簡単に書くことができる。 それによってコードが読みやすくなる。
こんな便利な再帰関数ですが… メリットばかりではなく危険もあります (大いなる力には危険がつきものってそれ一番言われてるから)
再帰関数のデメリット 無限ループ →プログラムを終了させる条件などを入れない でコードを書いてしまうと、プログラムが終わ らず永遠に実行され続け、オーバーフローを起 こしてしまう。 (無限ループってこわくね?)
例えば これはwhile文でも起こります。 もしなってしまったらCtrl+cで抜けられます。
練習問題1 引数を入力させ、1から引数番目までの和を コンソールに表示する再帰関数
解答例
練習問題2 引数を2つ入力させ、その二つの数の最大公 約数を計算する再帰関数 まぁユークリッドの互除法ってやつですね
解答例
練習問題3 引数を入力させ、引数番目のフィボナッチ数 列の項をコンソールに表示する再帰関数 フィボナッチ数列とは… →1 1 2 3
5 8 13 21 34 55 89 144 233 377 …
解答例
練習問題4(解けたらすごい) 引数個のハノイの塔の手順を出力する再帰関数 (↓こーなればおk
解答例