AIを使って問題を作成しています。
Prompt:
Python3エンジニア認定基礎試験に出てきそうな問題を作ってください。
問題1 (ジェネレーター)
次のコードの出力は何ですか?
def generator():
for i in range(3):
yield i
g = generator()
print(next(g))
print(next(g))
0 1
0 0
1 2
0 2
解説
正解:1. 0 1
yield を使ったジェネレーターは、次の要素を返します。next を呼び出すたびに次の値が返されます。
問題2 (リストの内包表記と条件)
次のコードの出力は何ですか?
lst = [x**2 for x in range(6) if x % 2 == 0]
print(lst)
[0, 4, 16, 36]
[0, 1, 4, 9, 16, 25, 36]
[0, 4, 16]
[0, 2, 4, 6, 8, 10]
解説
正解:3. [0, 4, 16]
リスト内包表記は、0から5の範囲内の偶数の二乗を生成します。
問題3 (デコレータ)
次のコードの出力は何ですか?
def decorator(func):
def wrapper():
print("Before function call")
func()
print("After function call")
return wrapper
@decorator
def say_hello():
print("Hello!")
say_hello()
Before function call Hello! After function call
Hello! Before function call After function call
Before function call After function call
Error
解説
正解:1. Before function call Hello! After function call
デコレータは関数の前後に処理を追加します。
問題4 (関数のネスト)
次のコードの出力は何ですか?
def outer(x):
def inner(y):
return x + y
return inner
f = outer(10)
result = f(5)
print(result)
5
10
15
Error
解説
正解:3. 15
内部関数 inner は外部関数 outer の引数 x にアクセスできます。
問題5 (例外処理とカスタム例外)
次のコードの出力は何ですか?
class MyException(Exception):
pass
try:
raise MyException("An error occurred")
except MyException as e:
print(e)
An error occurred
MyException
Exception
Error
解説
正解:1. An error occurred
カスタム例外 MyException が発生し、そのメッセージが表示されます。
問題6 (ジェネレーターの理解)
次のコードの出力は何ですか?
def countdown(n):
while n > 0:
yield n
n -= 1
for num in countdown(3):
print(num, end=' ')
3 2 1
1 2 3
3 2
2 1
解説
正解:1. 3 2 1
ジェネレーター countdown はカウントダウンの各値を生成します。
問題7 (ラムダ関数とソート)
次のコードの出力は何ですか?
lst = [(1, 'one'), (2, 'two'), (3, 'three')]
lst.sort(key=lambda x: x[1])
print(lst)
[(1, 'one'), (2, 'two'), (3, 'three')]
[(3, 'three'), (1, 'one'), (2, 'two')]
[(1, 'one'), (3, 'three'), (2, 'two')]
[(2, 'two'), (1, 'one'), (3, 'three')]
解説
正解:3. [(1, 'one'), (3, 'three'), (2, 'two')]
sort メソッドはラムダ関数を使ってタプルの第二要素でソートします。
問題8 (クラスと静的メソッド)
次のコードの出力は何ですか?
class MyClass:
@staticmethod
def greet():
return "Hello, World!"
print(MyClass.greet())
Hello, World!
None
Error
Hello
解説
正解:1. Hello, World!
静的メソッド greet はクラスから直接呼び出せます。
問題9 (ファイル操作と例外処理)
次のコードを実行した場合、存在しないファイルを開こうとすると、どの例外が発生しますか?
try:
with open("non_existent_file.txt", "r") as f:
content = f.read()
except Exception as e:
print(type(e))
<class 'FileNotFoundError'>
<class 'ValueError'>
<class 'TypeError'>
<class 'KeyError'>
解説
正解:1. <class 'FileNotFoundError'>
存在しないファイルを開こうとすると FileNotFoundError が発生します。
問題10 (クラスとプロパティ)
次のコードの出力は何ですか?
class MyClass:
def __init__(self, value):
self._value = value
@property
def value(self):
return self._value
obj = MyClass(10)
print(obj.value)
10
None
Error
value
解説
正解:1. 10
プロパティ value は _value 属性の値を返します。