はじめに
タイトルの通り、Python3エンジニア認定基礎試験を取得するために、教材を購入するのではなくChatGPTに講師になってもらってどこまで通用するのかという実験になります。
筆者のスペック
1. 業務ではAWS専門のインフラ領域開発チームのリーダー
2. プログラミング歴はGASで1年ほど(ほぼ忘れた)とPythonで2か月ほど(ほぼChatGPTが書いた)
3. 勉強は苦手であんまりやらない
利用する教材
Pythonチュートリアル 第3版
試験内容はすべてこのチュートリアルから出題されます。
別途本を購入されてる方が多いので、手元に紙の本が欲しい方は以下を購入されることをお勧めします。
徹底攻略Python 3 エンジニア認定[基礎試験]問題集 徹底攻略シリーズ
プロンプト
#1をご覧ください。
続きで以下を入力しました。
4. More Control Flow Toolsについて解説をお願いします。
https://docs.python.org/3.13/tutorial/controlflow.html
出力
第四章:「4. 制御フローのツール」解説
こんにちは、皆さん!
今回は「制御フローのツール」を学びます。制御フローはプログラムの動きを制御する基本です。この章では、条件分岐やループ、関数の定義などを習得します。
公式ドキュメント: More Control Flow Tools
この章で学ぶこと
- 条件分岐(
if
文) - 繰り返し(
for
文とwhile
文) - ループ制御(
break
、continue
、else
) - 関数の定義(
def
) - 関数の引数と戻り値
1. 条件分岐 (if
文)
基本構文
条件分岐はプログラムの流れを変えるために使います。Pythonの if
文は次のように書きます:
if 条件式:
実行するコード
elif 別の条件式:
実行するコード
else:
実行するコード
例: 数値の比較
x = 10
if x > 5:
print("xは5より大きい")
elif x == 5:
print("xは5と等しい")
else:
print("xは5より小さい")
2. 繰り返し
for
文
リストや文字列などのシーケンスをループ処理できます。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
range()
関数
数値の範囲を生成してループに使用できます。
for i in range(5): # 0から4まで
print(i)
while
文
条件が True
の間、繰り返し処理を行います。
n = 0
while n < 5:
print(n)
n += 1
3. ループ制御
break
ループを途中で終了します。
for i in range(10):
if i == 5:
break
print(i)
continue
現在のループ処理をスキップし、次の反復に進みます。
for i in range(5):
if i == 2:
continue
print(i)
ループの else
ループが正常に終了した場合に実行されるコードを記述します。
for i in range(5):
print(i)
else:
print("ループが正常に終了しました")
4. 関数の定義
基本構文
関数を使うと、コードを再利用しやすくなります。
def 関数名(引数1, 引数2, ...):
処理
return 戻り値
例: 関数の定義と呼び出し
def greet(name):
return f"Hello, {name}!"
message = greet("Yuki")
print(message) # Hello, Yuki!
デフォルト引数
引数にデフォルト値を設定できます。
def greet(name="World"):
return f"Hello, {name}!"
print(greet()) # Hello, World!
print(greet("Python")) # Hello, Python!
可変長引数
引数の数が不定の場合に使います。
def sum_numbers(*args):
return sum(args)
print(sum_numbers(1, 2, 3)) # 6
5. ハンズオン
条件分岐の練習
次のコードを実行してみましょう:
age = 20
if age < 18:
print("未成年です")
else:
print("成人です")
繰り返しの練習
次のコードを試してみてください:
for i in range(1, 11):
if i % 2 == 0:
print(f"{i}は偶数です")
else:
print(f"{i}は奇数です")
関数の練習
次のコードを作成して実行してみましょう:
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
print(factorial(5)) # 120
次回予告
次回は、「5. データ構造」について学びます。Pythonのリスト、辞書、セットなどのデータ構造を深掘りし、効率的なデータ操作をマスターしましょう!
質問があれば、どんどん聞いてくださいね!
この章での問題を出力してみる
4. More Control Flow Toolsで実際に試験に出そうな問題を出してください。
以下は「4. 制御フローのツール(More Control Flow Tools)」から、試験に出そうな問題の例です。
試験に出そうな問題例
問題 1: 条件分岐
次のコードを実行した場合の結果として正しいものを選びなさい。
x = 10
if x > 15:
print("xは15より大きい")
elif x > 5:
print("xは5より大きいが15以下")
else:
print("xは5以下")
xは15より大きい
xは5より大きいが15以下
xは5以下
- エラー
問題 1:解答
2
(x
は10なので、x > 5
の条件を満たし、2番目のブロックが実行されます)
問題 2: for
ループ
次のコードを実行した場合の出力として正しいものを選びなさい。
for i in range(3):
print(i)
1 2 3
0 1 2
0 1 2 3
- エラー
問題 2:解答
2
(range(3)
は0
から2
までの範囲を生成します)
問題 3: while
ループ
次のコードを実行した場合の出力として正しいものを選びなさい。
n = 5
while n > 0:
print(n)
n -= 1
5 4 3 2 1 0
5 4 3 2 1
4 3 2 1
- エラー
問題 3:解答
2
(ループはn > 0
がTrue
の間実行され、n
が0
になった時点で終了します)
問題 4: break
の動作
次のコードを実行した場合の出力として正しいものを選びなさい。
for i in range(5):
if i == 3:
break
print(i)
0 1 2 3
0 1 2
0 1
- エラー
問題 4:解答
2
(i == 3
でbreak
が実行され、ループが終了します)
問題 5: continue
の動作
次のコードを実行した場合の出力として正しいものを選びなさい。
for i in range(5):
if i == 2:
continue
print(i)
0 1 3 4
0 1 2 3 4
0 1 2
- エラー
問題 5:解答
1
(i == 2
のときにcontinue
が実行され、その反復がスキップされます)
問題 6: 関数の定義と呼び出し
次のコードを実行した場合の結果として正しいものを選びなさい。
def add(a, b=5):
return a + b
print(add(10))
15
10
エラー
20
問題 6:解答
1
(b
にはデフォルト値5
が設定されているため、10 + 5 = 15
になります)
問題 7: 可変長引数
次のコードを実行した場合の結果として正しいものを選びなさい。
def multiply(*args):
result = 1
for num in args:
result *= num
return result
print(multiply(2, 3, 4))
9
24
12
エラー
問題 7:解答
2
(2 * 3 * 4 = 24
)
問題 8: ループの else
次のコードを実行した場合の出力として正しいものを選びなさい。
for i in range(5):
if i == 3:
break
else:
print("ループ終了")
ループ終了
0 1 2 3
- エラー
- 何も出力されない
問題 8:解答
4
(break
でループが終了するとelse
部分は実行されません)
これらの問題は、制御フローの基本的な知識(if
文、ループ、関数、ループ制御)を問う内容です。試験では、実際のコードの出力を正確に予測する能力が求められるので、しっかり練習しましょう!
まとめ
制御構文はどの言語でも共通のところはあるので既に別の言語を学習した方はとっつきやすいですね!
初学者は大事な部分なので必ず押さえたい所です!
では、5章も学習したらまた記事にしますね