Python 3エンジニア認定基礎試験~模擬試験⑧~ 2024年12月10日2024年12月10日 ailearn 1. 次のコードについて、urlopenにタイムアウトを設定する理由として正しいものを選んでください。 import urllib.requestresponse = urllib.request.urlopen("https://www.example.com", timeout=10) HTTPリクエストのステータスコードを制限するため URLの長さを制限するため サーバーが応答しない場合に無限に待機しないようにする クエリパラメータをエンコードするため None 2. 次のコードで、相対インポートが失敗する理由を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── module1.py# ├── subpackage/# │ ├── __init__.py# │ ├── module2.py# module2.pyfrom ..module1 import greet モジュールmodule1が見つからないため スクリプトとして直接実行しているため 相対インポートは絶対インポートより優先されるため PYTHONPATHにパッケージが含まれていないため None 3. 次のコードの出力結果を選んでください。 # package/subpackage/module.pydef greet():return "Hello from module!"# main.pyfrom package.subpackage import moduleprint(module.greet()) Error: module not found None Hello from module! エラーが発生する None 4. 次のコードの実行結果を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── subpackage/# │ ├── __init__.py# │ ├── module.py# subpackage/__init__.py__all__ = ['module']# main.pyfrom package.subpackage import *print('module' in globals()) False エラーが発生する True None None 5. Pythonの標準ライブラリでHTTPリクエストを行うために使用されるモジュールとして正しいものを選んでください。 urllib.request http.client socket requests None 6. 次のコードを実行したときの出力結果は何でしょうか? age = 18result = "成人" if age >= 20 else "未成年"print(result) 成人 未成年 エラーが発生します 出力されない None 7. 変数scoreが60以上なら「合格」、そうでなければ「不合格」と表示する条件式はどれでしょうか? print("合格" if score < 60 else "不合格") print("不合格" if score >= 60 else "合格") print("合格" if score >= 60 else "不合格") print("不合格" if score < 60 else "合格") None 8. 変数nが5と10の両方で割り切れる場合に「5と10の倍数」、そうでなければ「倍数ではない」と表示するコードはどれでしょうか? print("5と10の倍数" if n % 5 == 0 and n % 10 == 0 else "倍数ではない") print("5と10の倍数" if n % 5 == 0 or n % 10 == 0 else "倍数ではない") print("倍数ではない" if n % 5 == 0 and n % 10 == 0 else "5と10の倍数") print("倍数ではない" if n % 5 != 0 and n % 10 != 0 else "5と10の倍数") None 9. 次のコードについて、モックを使用したテストの結果として正しいものを選んでください。 import unittestfrom unittest.mock import MagicMockclass TestMockExample(unittest.TestCase):def test_mock(self):mock_function = MagicMock(return_value=42)result = mock_function()self.assertEqual(result, 42)if __name__ == "__main__":unittest.main() テストが成功する テストが失敗する エラーが発生する 何も出力されない None 10. 次のコードで、サブパッケージのsubpackage内にあるモジュールmoduleを読み込む正しい方法を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── subpackage/# │ ├── __init__.py# │ ├── module.py import subpackage.module import package.subpackage.module from subpackage import module import module None 11. 次のコードの実行結果を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── subpackage/# │ ├── __init__.py# │ ├── module2.py# │ ├── module3.py# module2.pyfrom .module3 import greet as helloprint(hello())# module3.pydef greet():return "Hello from module3" "Hello from module3" Error: greet not found "hello not found" エラーが発生する None 12. 次のコードで、module3.py内の関数funcを相対インポートでインポートする正しい方法を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── module3.py# ├── subpackage/# │ ├── __init__.py# │ ├── module4.py# module4.py から module3.py の func をインポートする from ..module3 import func from .module3 import func import func from package.module3 import func None 13. 次のコードを実行したときの出力結果は何でしょうか? marks = 55result = "Excellent" if marks >= 90 else "Good" if marks >= 75 else "Average" if marks >= 50 else "Poor"print(result) Excellent Good Poor Average None 14. 変数xが0でなければ「非ゼロ」と表示し、0であれば「ゼロ」と表示するコードはどれでしょうか? print("ゼロ" if x else "非ゼロ") print("非ゼロ" if x else "ゼロ") print("ゼロ" if x != 0 else "非ゼロ") print("非ゼロ" if x == 0 else "ゼロ") None 15. 次のコードを実行したときの出力結果は何でしょうか? x = -1y = 1result = "正の数" if x > 0 or y > 0 else "非正の数"print(result) 正の数 非正の数 エラーが発生します 出力されない None 16. 次のコードの動作として正しい説明を選んでください。 import urllib.requestresponse = urllib.request.urlopen("https://www.example.com")print(response.status) HTTPリクエストのヘッダーを取得する URLの内容を文字列として返す レスポンスヘッダーを取得する HTTPレスポンスのステータスコードを取得する None 17. 変数tempが25度以上なら「暑いです」、そうでなければ「快適です」と表示する条件式はどれでしょうか? print("暑いです" if temp > 25 else "快適です") print("快適です" if temp >= 25 else "暑いです") print("快適です" if temp > 25 else "暑いです") print("暑いです" if temp >= 25 else "快適です") None 18. 次のコードについて、テストメソッド名に必要なルールとして正しいものを選んでください。 import unittestclass TestExample(unittest.TestCase):def test_something(self):self.assertTrue(True) メソッド名はunit_で始める必要がある メソッド名はcase_で始める必要がある メソッド名は何でも良い メソッド名はtest_で始める必要がある None 19. 変数scoreが50以上の場合に「合格」、そうでなければ「不合格」と表示するコードはどれでしょうか? print("合格" if score <= 50 else "不合格") print("合格" if score >= 50 else "不合格") print("不合格" if score >= 50 else "合格") print("不合格" if score < 50 else "合格") None 20. 次のコードを実行した場合の出力として正しいものを選んでください。 import urllib.requesttry:response = urllib.request.urlopen("https://www.example.com")print(response.read().decode("utf-8")[:20])except urllib.error.HTTPError as e:print(f"HTTP Error: {e.code}")except urllib.error.URLError as e:print(f"URL Error: {e.reason}") サイトのHTMLコンテンツの最初の20文字を出力する HTTP Error: 404 URL Error: エラーが発生し、スタックトレースが表示される None 21. 次のコードで、親パッケージを明示的に参照せずにサブパッケージのモジュールをインポートする方法を選んでください。 # current module: package/subpackage/module.pyfrom ... import sibling_module sibling_moduleをインポートする エラーが発生する パッケージ階層全体がインポートされる __name__が変更される None 22. 次のコードについて、テストスキップの用途として正しい説明を選んでください。 import unittestclass TestExample(unittest.TestCase):@unittest.skip("Not implemented yet")def test_case(self):self.assertTrue(True) テストの結果を保存する テストが失敗した場合にスキップする テストが成功した場合にスキップする 実行したくないテストを一時的にスキップする None 23. 変数aとbの両方が正の数である場合に「両方正の数」、それ以外の場合に「どちらかまたは両方が負またはゼロ」と表示するコードはどれでしょうか? print("両方正の数" if a > 0 or b > 0 else "どちらかまたは両方が負またはゼロ") print("どちらかまたは両方が負またはゼロ" if a > 0 and b > 0 else "両方正の数") print("両方正の数" if a >= 0 and b >= 0 else "どちらかまたは両方が負またはゼロ") print("両方正の数" if a > 0 and b > 0 else "どちらかまたは両方が負またはゼロ") None 24. 次のコードの実行結果を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── subpackage/# │ ├── __init__.py# │ ├── module.py# subpackage/module.pydef add(a, b):return a + b# main.pyimport package.subpackage.module as modprint(mod.add(3, 7)) 7 Error: add not found 10 None None 25. 次のコードを実行した場合の結果として正しいものを選んでください。 import unittestfrom unittest.mock import patchclass TestPatchExample(unittest.TestCase):@patch("builtins.print")def test_patch(self, mock_print):print("Hello, World!")mock_print.assert_called_with("Hello, World!")if __name__ == "__main__":unittest.main() テストが失敗する テストが成功する エラーが発生する 何も出力されない None 26. 次のコードの実行結果を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── subpackage/# │ ├── __init__.py# │ ├── module2.py# │ ├── module3.py# module2.pyfrom . import module3print(dir(module3))# module3.pydef greet():return "Hello from module3"class Greeter:def say_hello(self):return "Hello, world!" ['Greeter', 'greet', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__'] Error: module3 not found ['Greeter', 'greet'] エラーが発生する None 27. 次のコードを実行したときの出力結果は何でしょうか? num = 5result = "偶数" if num % 2 == 0 else "奇数"print(result) 偶数 奇数 エラーが発生します 出力されない None 28. 次のコードを実行した場合の結果として正しいものを選んでください。 import unittestfrom unittest.mock import MagicMockclass TestMockCallCount(unittest.TestCase):def test_call_count(self):mock_function = MagicMock()mock_function()mock_function()self.assertEqual(mock_function.call_count, 2)if __name__ == "__main__":unittest.main() テストが失敗する エラーが発生する テストが成功する 何も出力されない None 29. 次のコードについて、HTTPヘッダーの取得方法として正しいものを選んでください。 import urllib.requestresponse = urllib.request.urlopen("https://www.example.com")print(response.getheaders()) HTTPリクエストヘッダーを取得する HTTPレスポンスヘッダーをリストとして取得する HTTPレスポンスボディを取得する URL全体を文字列として返す None 30. 次のコードを実行したときの出力結果は何でしょうか? score = 70result = "合格" if score >= 60 else "不合格"print(result) 不合格 エラーが発生します 出力されない 合格 None 31. unittestのmockモジュールの用途として正しいものを選んでください。 テスト結果を自動的に生成するため テスト対象の外部依存をシミュレートするため テストの実行速度を向上させるため テストケースを並列に実行するため None 32. 次のコードの実行結果を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── subpackage/# │ ├── __init__.py# │ ├── module2.py# │ ├── module3.py# module2.pyfrom .module3 import greetfrom .. import module1print(greet(), module1.__name__)# module3.pydef greet():return "Hello from module3"# module1.pydef info():return "Info from module1" "module3 module1" Error: module1 not found エラーが発生する "Hello from module3 package.module1" None 33. 次のコードについて、HTTP POSTリクエストのボディ内容として正しいものを選んでください。 import urllib.requestimport urllib.parsedata = urllib.parse.urlencode({"key": "value"}).encode("utf-8")req = urllib.request.Request("https://www.example.com",data=data,method="POST")response = urllib.request.urlopen(req)print(response.status) {"key": "value"} None key=value key=valueを含むURL None 34. 次のコードを実行した場合の結果として正しいものを選んでください。 import unittestclass TestExample(unittest.TestCase):def test_skip(self):self.skipTest("This test is skipped")if __name__ == "__main__":unittest.main() テストが成功する テストが失敗する エラーが発生する テストはスキップされる None 35. 次のコードについて、クエリパラメータを解析するための正しい関数を選んでください。 import urllib.parseurl = "https://www.example.com/path?name=John&age=30"parsed_url = urllib.parse.urlparse(url)query_params = urllib.parse.parse_qs(parsed_url.query)print(query_params) {'name': 'John', 'age': '30'} ['name=John', 'age=30'] {'name': ['John'], 'age': ['30']} ['John', '30'] None 36. 変数numが偶数である場合に「偶数」、奇数である場合に「奇数」と表示するコードはどれでしょうか? print("奇数" if num % 2 == 0 else "偶数") print("偶数" if num % 2 else "奇数") print("偶数" if num % 2 == 0 else "奇数") print("奇数" if num % 2 else "偶数") None 37. 次のコードの実行結果を選んでください。 # パッケージ構造:# package/# ├── __init__.py# ├── subpackage/# │ ├── __init__.py# │ ├── module.py# subpackage/__init__.pyfrom .module import hello# main.pyfrom package.subpackage import helloprint(hello()) None Hello from subpackage! Error: hello not found エラーが発生する None 38. 次のコードで、from ... import構文を使用してサブパッケージをインポートする正しい方法を選んでください。 # main.py# パッケージ構造:# package/# ├── __init__.py# ├── subpackage/# │ ├── __init__.py# │ ├── module.py from subpackage import module from module import subpackage from package import subpackage.module from package.subpackage import module None 39. 次のコードでfrom package import *を使用した場合、インポートされるものを制御する方法を選んでください。 __all__リストを定義する __name__を設定する __file__を設定する __doc__を設定する None 40. 次のコードについて、出力結果として正しいものを選んでください。 import unittestclass TestListOperations(unittest.TestCase):def test_list_modification(self):lst = [1, 2, 3]lst.append(4)self.assertListEqual(lst, [1, 2, 3, 4])if __name__ == "__main__":unittest.main() テストが失敗する エラーが発生する テストが成功する 何も出力されない None Time's up