1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ChatGPTにPython3エンジニア認定基礎試験の講師になってもらおう #4

Posted at

はじめに

タイトルの通り、Python3エンジニア認定基礎試験を取得するために、教材を購入するのではなくChatGPTに講師になってもらってどこまで通用するのかという実験になります。

筆者のスペック

1. 業務ではAWS専門のインフラ領域開発チームのリーダー
2. プログラミング歴はGASで1年ほど(ほぼ忘れた)とPythonで2か月ほど(ほぼChatGPTが書いた)
3. 勉強は苦手であんまりやらない

利用する教材

Pythonチュートリアル 第3版

試験内容はすべてこのチュートリアルから出題されます。
別途本を購入されてる方が多いので、手元に紙の本が欲しい方は以下を購入されることをお勧めします。
徹底攻略Python 3 エンジニア認定[基礎試験]問題集 徹底攻略シリーズ

Pythonチュートリアル 第4版

プロンプト

#1をご覧ください。

続きで以下を入力しました。

prompt
4. More Control Flow Toolsについて解説をお願いします。
https://docs.python.org/3.13/tutorial/controlflow.html

出力

第四章:「4. 制御フローのツール」解説


こんにちは、皆さん!
今回は「制御フローのツール」を学びます。制御フローはプログラムの動きを制御する基本です。この章では、条件分岐ループ関数の定義などを習得します。

公式ドキュメント: More Control Flow Tools


この章で学ぶこと

  1. 条件分岐(if 文)
  2. 繰り返し(for 文と while 文)
  3. ループ制御(breakcontinueelse
  4. 関数の定義(def
  5. 関数の引数と戻り値

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のリスト、辞書、セットなどのデータ構造を深掘りし、効率的なデータ操作をマスターしましょう!

質問があれば、どんどん聞いてくださいね!

この章での問題を出力してみる

prompt
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以下")
  1. xは15より大きい
  2. xは5より大きいが15以下
  3. xは5以下
  4. エラー
問題 1:解答

2
xは10なので、x > 5の条件を満たし、2番目のブロックが実行されます)


問題 2: for ループ

次のコードを実行した場合の出力として正しいものを選びなさい。

for i in range(3):
    print(i)
  1. 1 2 3
  2. 0 1 2
  3. 0 1 2 3
  4. エラー
問題 2:解答

2
range(3)0から2までの範囲を生成します)


問題 3: while ループ

次のコードを実行した場合の出力として正しいものを選びなさい。

n = 5
while n > 0:
    print(n)
    n -= 1
  1. 5 4 3 2 1 0
  2. 5 4 3 2 1
  3. 4 3 2 1
  4. エラー
問題 3:解答

2
(ループはn > 0Trueの間実行され、n0になった時点で終了します)


問題 4: break の動作

次のコードを実行した場合の出力として正しいものを選びなさい。

for i in range(5):
    if i == 3:
        break
    print(i)
  1. 0 1 2 3
  2. 0 1 2
  3. 0 1
  4. エラー
問題 4:解答

2
i == 3breakが実行され、ループが終了します)


問題 5: continue の動作

次のコードを実行した場合の出力として正しいものを選びなさい。

for i in range(5):
    if i == 2:
        continue
    print(i)
  1. 0 1 3 4
  2. 0 1 2 3 4
  3. 0 1 2
  4. エラー
問題 5:解答

1
i == 2のときにcontinueが実行され、その反復がスキップされます)


問題 6: 関数の定義と呼び出し

次のコードを実行した場合の結果として正しいものを選びなさい。

def add(a, b=5):
    return a + b

print(add(10))
  1. 15
  2. 10
  3. エラー
  4. 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))
  1. 9
  2. 24
  3. 12
  4. エラー
問題 7:解答

2
2 * 3 * 4 = 24


問題 8: ループの else

次のコードを実行した場合の出力として正しいものを選びなさい。

for i in range(5):
    if i == 3:
        break
else:
    print("ループ終了")
  1. ループ終了
  2. 0 1 2 3
  3. エラー
  4. 何も出力されない
問題 8:解答

4
breakでループが終了するとelse部分は実行されません)


これらの問題は、制御フローの基本的な知識(if 文、ループ、関数、ループ制御)を問う内容です。試験では、実際のコードの出力を正確に予測する能力が求められるので、しっかり練習しましょう!

まとめ

制御構文はどの言語でも共通のところはあるので既に別の言語を学習した方はとっつきやすいですね!
初学者は大事な部分なので必ず押さえたい所です!
では、5章も学習したらまた記事にしますね:pencil2:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?