#Function(関数)とは?
数学の f(x) = ax^2 + bx + c を思い返すと分かりやすい。自分でf(x)という関数を定義(Definition function)しただけでは、値は出力されず、x=3などxに値を入れて(Calling function)関数を呼び出すことで初めて結果が算出される。
今まで使用してきた関数は全てpythonにもともと組み込まれているものだったが、「def: 」を使用することで自分専用の関数をカスタムすることが可能。書式は以下参照。
def my_funtion(): # Definition function
print("Hello")
my function() # Calling function
#出力結果
Hello
1つの関数内はインデントで先頭を揃えないと、関数内だとみなされない。
上の例だと、L1,L2は同じ関数内で1つの定義関数だとみなされ、L4のmy function()という呼び出し関数は別の関数とみなされているということ。
#Tab vs Space key
どちらも同じことができるので好みの問題だそうだ。python3公式では4回のSpace key押下を推奨しているようだが、Angelaはeditorを改造することで解決することを推奨している。
#While Loop
For Loop
list内の各変数/値それぞれに対し何かを行い、全ての値に対し実行が終わったらそこでループ終了。
list =[2,4,20]
for a in list:
print(a)
出力結果
2
4
20
for b in range(1,3):
print(b)
出力結果
1
2
3
While Loop
While直後に記載した条件に合致した場合、条件不一致になるまで永遠にループを繰り返す。
Forと違って、どのくらい繰り返せばよいのかわからない場合に用いることが多い。
a = 100
while a > 7:
a -= 3
print(a)
出力結果
10
100から3ずつ減らしていって、7より小さくなる一歩手前の値をprintするプログラム
もし永遠に繰り返したいならば、絶対にTrueになる式をWhile直後に書いておけばよいだけ。
while 1=1:
print("True")
これは永遠に続くループ関数となる。
なお、コードの一部にループから抜けられる要素がない場合はエラーになることが多いので注意が必要。強制的にループを抜けさせる場合は「break」で可能だが、おすすめしない。詳しくはこちら→ https://engineer-club.jp/java-break
##Mission>> 迷路から脱出するアルゴリズムをコーディング
フリーサイト__"Reeborg's World"__
→ https://reeborg.ca/reeborg.html?lang=en&mode=python&menu=worlds%2Fmenus%2Freeborg_intro_en.json&name=Maze&url=worlds%2Ftutorial_en%2Fmaze1.json
いろいろと工夫すれば使えるので、アルゴリズムの練習にもってこいのサイト。
↓↓ヒント↓↓
turn_right()がないので、turn_left()を使用して独自に関数を定義する必要がある!
Robbotの初期位置はランダムなので、永遠にループしてしまうケースが出てくる。これをどう処理するか?が課題。