Python 3 エンジニア認定実践試験 問題集 総仕上げ2

投稿日:

更新日:

カテゴリ:

Python 3 エンジニア認定実践試験対策として、総仕上げ2としてChatGPTで生成した模擬問題です。

総仕上げ1では、9章までの内容が多かった気がしますので、今回は10章以降の内容を指定して出題してますので、1と2を合わせて範囲をカバーできればと考えています。

生成された問題の適切性と“正解”回答の正しさは一通り検証しておりますので、皆さんのご参考になれれば嬉しいです。

問題

問題は以下になります。問題の下に正解を隠してますので、クリックしたら確認できます。
あとは、検証した内容や補足を付け加えてますので参考にしてください。

  1. Pythonで現在のディレクトリを取得するために使用されるOSライブラリの関数は何ですか?
    • a) get_current_directory()
    • b) os.cwd()
    • c) os.getcwd()
    • d) current_directory()
    クリックして正解と解説をチェック
    正解: c) os.getcwd()

    macOSの場合、次のような感じになります。

    >>> import os
    >>> os.getcwd()
    '/Users/user1/dev/python/env1'

  2. Pythonでファイルを書き込む際に使用されるモードは何ですか?
    • a) “r”
    • b) “w”
    • c) “a”
    • d) “x”
    クリックして正解と解説をチェック
    正解: b) “w”

  3. PythonでJSON形式の文字列からPythonオブジェクトへ変換するためのメソッドは何ですか?
    • a) json.decode()
    • b) json.loads()
    • c) json.parse()
    • d) json.load()
    クリックして正解と解説をチェック
    正解: b) json.loads()

    次のように、文字列からPythonオブジェクトならloadsです。

    >>> import json
    >>> jstr = '{"a":1, "b":{"c":"d", "e":"f"}}'
    >>> json.loads(jstr)
    {'a': 1, 'b': {'c': 'd', 'e': 'f'}}

  4. Pythonのテストフレームワークで、特定の条件を満たすかどうかを確認するためのアサーション関数は何ですか?
    • a) assertEqual()
    • b) assertTrue()
    • c) assertCondition()
    • d) assertCheck()
    クリックして正解と解説をチェック
    正解: b) assertTrue()

    この問題文は微妙ですが、下記の例は実際試験に出た関連ポイントとして、assertTrue([])はテストに通るかどうかという問題です。

    unittest1.pyは以下とします。

    import unittest
    
    
    class AddTest(unittest.TestCase):
        def test_assert_false(self):
            self.assertTrue([])
    
    
    if __name__ == "__main__":
        unittest.main()
    

    次にように、通りませんので、覚えておきましょう!

    % python unittest1.py 
    F
    ======================================================================
    FAIL: test_assert_false (__main__.AddTest.test_assert_false)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/Users/user1/python/env1/practice-exams/unittest1.py", line 6, in test_assert_false
        self.assertTrue([])
    AssertionError: [] is not true
    
    ----------------------------------------------------------------------
    Ran 1 test in 0.000s
    
    FAILED (failures=1)

  5. 以下のPythonコードを実行した場合、正しい出力はどれですか?
    import logging
    
    logging.debug("debug message")
    logging.info("info message")
    logging.warning("warning message")
    logging.error("error message")
    logging.critical("critical message")
    • a)
      DEBUG:root:debug message
      INFO:root:info message
      WARNING:root:warning message
      ERROR:root:error message
      CRITICAL:root:critical message
    • b)
      INFO:root:info message
      WARNING:root:warning message
      ERROR:root:error message
      CRITICAL:root:critical message
    • c)
      WARNING:root:warning message
      ERROR:root:error message
      CRITICAL:root:critical message
    • d)
      ERROR:root:error message
      CRITICAL:root:critical message
    クリックして正解と解説をチェック
    正解: c)

    これはChatGPTではなく、実際に出た問題をネタにしてます。
    実行の結果は以下の通りです。デフォルトのlevel設定では、WARNING以上になります。

    % python logexam.py 
    WARNING:root:warning message
    ERROR:root:error message
    CRITICAL:root:critical message

  6. Pythonでパスワードをハッシュ化するために使用されるライブラリは何ですか?
    • a) hashlib
    • b) crypt
    • c) securecrypt
    • d) passhash
    クリックして正解と解説をチェック
    正解: a) hashlib
    >>> import hashlib
    >>> hashlib.md5(b'Hello World')
    
    >>> hashlib.md5(b'Hello World').hexdigest()
    'b10a8db164e0754105b7a99be72e3fe5'

  7. ハッシュ化するアルゴリズムの安全性一番高いのはどれですか?
    • a) SHA-1
    • b) MD4
    • c) MD5
    • d) SHA-256
    クリックして正解と解説をチェック
    正解: d) SHA-256

    これもChatGPTではなく、実際に出た問題をネタにしてます。
    選択肢は3つしか覚えてなく、MD4はでっち上げですが、こんなニュアンスですので、安全性の順番はおさらいしておきましょう!


  8. 次のように実行したら、どんな出力になりますか?
    g = (i ** 2 for i in range(2))
    next(g)
    next(g)
    next(g)
    • a) 「012」と出力される
    • b) 何も出力されずにStopIterationになる
    • c) 「01」と出力された時にStopIterationになる
    • d) 「010」と出力される
    クリックして正解と解説をチェック
    正解: c) 「01」と出力された時にStopIterationになる

    これもChatGPTではなく、実際に出た問題をネタにしてます。
    結果は以下の通りです。

    >>> g = (i ** 2 for i in range(2))
    >>> next(g)
    0
    >>> next(g)
    1
    >>> next(g)
    Traceback (most recent call last):
      File "", line 1, in 
    StopIteration

  9. Pythonでファイルを読み取るときに使用される組み込み関数は何ですか?
    • a) open()
    • b) read()
    • c) load()
    • d) import()
    クリックして正解と解説をチェック
    正解: b) read()
    >>> with open('hello.txt') as f:
    ...     f.read()
    ... 
    'Hello\n'

  10. Pythonのpdbモジュールを使用してデバッグモードに入るために使用されるコマンドは何ですか?
    • a) break
    • b) debug
    • c) stop
    • d) pdb
    クリックして正解と解説をチェック
    正解: d) pdb

    こんな感じになります。homebrewでインストールしたPython 3.11のパスが出てますね。

    >>> import pdb
    >>> pdb
    <module 'pdb' from '/usr/local/Cellar/python@3.11/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/pdb.py'>

  11. Pythonのpickleモジュールは何を行うために使用されますか?
    • a) データの圧縮
    • b) データのシリアル化とデシリアル化
    • c) データの暗号化
    • d) データの形式変換
    クリックして正解と解説をチェック
    正解: b) データのシリアル化とデシリアル化

  12. Pythonでファイルの存在を確認するために使用される関数は何ですか?
    • a) file.exists()
    • b) file.exists(path)
    • c) os.file_exists()
    • d) os.path.exists(path)
    クリックして正解と解説をチェック
    正解: d) os.path.exists(path)

    カレントディレクトリにhaa.txtが存在し、foo.txtが存在しない場合は次の通りです。

    >>> import os
    >>> os.path.exists('haa.txt')
    True
    >>> os.path.exists('foo.txt')
    False

  13. Pythonで文字列を整数に変換する関数は何ですか?
    • a) str_to_int()
    • b) int()
    • c) to_integer()
    • d) parse_int()
    クリックして正解と解説をチェック
    正解: b) int()
    >>> a = int('123')
    >>> type(a)
    <class 'int'>
    >>> a
    123

  14. Pythonのユニットテストで、テストケース内で最初に実行されるメソッドは何ですか?
    • a) setUp()
    • b) start()
    • c) init()
    • d) begin()
    クリックして正解と解説をチェック
    正解: a) setUp()

    setupのように、「u」を小文字で書くと、親クラスのオーバーライドにならず、実行されないので注意しましょう!


  15. Pythonのpdbデバッガで現在のコードの実行を1ステップ進めるために使用されるコマンドは何ですか?
    • a) step
    • b) next
    • c) continue
    • d) advance
    クリックして正解と解説をチェック
    正解: b) next

    「n」というように省略もできますので覚えておきましょう!


  16. Pythonでファイルを読み取る際に使用され、自動的にファイルを閉じるための構文は何ですか?
    • a) open(file, ‘r’) as f:
    • b) with open(file, ‘r’) as f:
    • c) read(file, ‘r’) as f:
    • d) file.read(‘r’) as f:
    クリックして正解と解説をチェック
    正解: b) with open(file, ‘r’) as f:

  17. Pythonの標準ライブラリで、ファイルのコピーを行うために使用されるモジュールは何ですか?
    • a) copyfile
    • b) shutil
    • c) filecopy
    • d) fileutil
    クリックして正解と解説をチェック
    正解: b) shutil

  18. Pythonの文字列の一部を別の文字列で置き換えるために使用されるメソッドは何ですか?
    • a) replace()
    • b) swap()
    • c) update()
    • d) change()
    クリックして正解と解説をチェック
    正解: a) replace()

    次のように置き換えられます。置き換え後の文字列は戻り値で受け取れます。

    >>> a = 'abc'
    >>> a.replace('b', '-')
    'a-c'
    >>> a
    'abc'

  19. PythonのCSVモジュールを使用してCSVファイルからデータを読み取る際、データをリストにするための関数は何ですか?
    • a) csv.parse()
    • b) csv.load()
    • c) csv.reader()
    • d) csv.read_data()
    クリックして正解と解説をチェック
    正解: c) csv.reader()

  20. Pythonで指定したディレクトリ内のファイル一覧を取得するために使用される関数は何ですか?
    • a) os.list_files()
    • b) os.list_dir()
    • c) os.listdir()
    • d) os.files()
    クリックして正解と解説をチェック
    正解: c) os.listdir()

    実行の結果には不要なものたくさん含まれたので、若干いじってますが、こんな感じです。

    >>> import os
    >>> os.listdir()
    ['logexam.py', 'person.py', 'argtest.py']


投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です