#author("2023-05-05T21:23:31+09:00","external:moriat","moriat") #author("2023-05-07T09:25:32+09:00","external:moriat","moriat") #topicpath ** 制御構造-1 [#l7ca6db7] *** ChatGPT で予習 [#pc0910be] - Python の制御構造について一覧を示して~ Pythonの主要な制御構造には以下があります。 1. if文: 条件が真(True)の場合に、一連のステートメントを実行します。 条件が偽(False)の場合、ifブロックをスキップして次のステートメント に進みます。 #code(python){{ if 条件式1: 実行するステートメント1 elif 条件式2: 実行するステートメント2 else: 実行するステートメント3 }} 2. for文: イテラブルなオブジェクト(リスト、タプル、文字列等)を 繰り返し処理します。 #code(python){{ for 変数 in イテラブルオブジェクト: 実行するステートメント1 実行するステートメント2 }} 3. while文: 条件が真(True)である限り、一連のステートメントを実行 します。 #code(python){{ while 条件式: 実行するステートメント1 実行するステートメント2 }} 4. break文: 現在のループから抜け出します。 #code(python){{ while 条件式: 実行するステートメント1 if 条件式2: break }} 5. continue文: 現在のループを中断し、次のループに進みます。 #code(python){{ for 変数 in イテラブルオブジェクト: if 条件式: continue 実行するステートメント1 }} 6. try-except文: エラーが発生する可能性のあるステートメントを実行 し、例外を補足して適切に処理します。 #code(python){{ try: 実行するステートメント1 except 例外の種類1: 例外処理1 except 例外の種類2: 例外処理2 else: 例外が発生しなかった場合に実行するステートメント finally: 必ず実行するステートメント }} 7. raise文: 意図的に例外を発生させます。 #code(python){{ raise 例外の種類("エラーメッセージ") }} 8. with文: ファイルやデータベースなどのリソースを制御するコンテキ ストを作成し、自動的にクリーンアップします。 #code(python){{ with open("ファイル名", "モード") as 変数: 実行するステートメント1 実行するステートメント2 }} 以上がPythonの主要な制御構造です。これらの構造をうまく使うことで、 Pythonプログラムをより効率的に、簡潔に記述することができます。 - Python の制御構造について理解を深めるためのプログラミングする課題を示して~ 以下は、Pythonの制御構造について理解を深めるための課題です。 1. フィボナッチ数列を求めるプログラムをfor文、while文、再帰関数を 使用して実装してみよう。 2. ユーザーから数字を入力してもらい、その数までの素数を求めるプロ グラムを実装してみよう。for文、while文、関数を使用して実装し、処 理時間の違いを比較してみよう。 3. ユーザーから文字列を入力してもらい、その中に含まれるアルファベッ トの個数を求めるプログラムを実装してみよう。for文、while文、辞書 型を使用して実装し、処理時間の違いを比較してみよう。 4. 石取りゲームを作成してみよう。プレイヤーとコンピューターが交互 に石を取り、最後に取った人が負けとなるルールで実装する。while文、 if文、ランダムモジュールを使用して実装してみよう。 5. シンプルな電卓を作成してみよう。ユーザーから数値と演算子を入力 してもらい、計算結果を表示するプログラムを実装してみよう。if文、 関数を使用して実装してみよう。 これらの課題を通じて、Pythonの制御構造について理解を深めることが できます。 ** フィボナッチ数列を作るプログラムの作成 [#q872c5c7] - 授業での議論~ -- range() の使い方 -- フィボナッチ数列のアルゴリズム~ -- フィボナッチ数列を計算するアルゴリズム・素数を見つけるアルゴリズム~ &ref(IMG_3011-2.jpg,,30%); - 制御構造とフィボナッチ数列のプログラム例~ [[Google Colaboratory>https://colab.research.google.com/drive/1CO1FxY893O6wKD6YnvI6LcAHZ_SGeFaV?usp=sharing]]