第7章_モジュール
今回の項目では、その他コレクションの操作ついて出題されます。
本試験の主教材である「Python3エンジニア認定基礎試験問題集」では第7章(P98~P99)の4問の内容です。
練習問題 1
標準ライブラリのrandomモジュールのrandint関数をインポートしたい場合、正しいコードを選択してください。
- import random.randint
- from random import randint
- import randint from random
- from random import *
答えはコチラをクリック!
答え:2
ポイント
特定の関数をインポートするにはfrom ○○ import △△ という文法でインポートをします。
1. → 不正解。Pythonでは関数単体をこの形式でインポートすることはできません。
3. → 不正解。この記述は文法的に誤っています。
4. → 不正解。動作はしますが、この形式はすべての関数をインポートしてしまうため、名前の衝突が発生しやすく、推奨されません。
練習問題 2
標準ライブラリのcalendarモジュールに含まれるweekday関数を実行する方法として正しいコードを選択してください。
- weekday(2025, 1, 1)
- import calendar
weekday(2025, 1, 1) - from calendar import weekday
calendar.weekday(2025, 1, 1) - calendar.weekday(2025, 1, 1)
答えはコチラをクリック!
答え:4
ポイント
weekday関数はcalendarモジュールに含まれる関数で、特定の日付の曜日を取得します。この関数を使用するには、まずモジュールをimport calendarでインポートし、calendar.weekdayという形式で呼び出す必要があります。
1. → 不正解。weekday関数はcalendarモジュールを経由して呼び出す必要があります。
2. → 不正解。モジュールをインポートしても、calendar.weekdayという形式で呼び出さなければなりません。
3. → 不正解。この形式でインポートした場合、weekdayを直接weekday(2025, 1, 1)と呼び出せますが、calendar.weekdayと書くとエラーになります。
練習問題 3
以下のモジュールmy_moduleが定義されています。このモジュールをワイルドカード(*)を使ってインポートした場合、どの関数がインポートされますか?
# my_moduleモジュールを定義
__all__ = ['func1', 'func2']
def func1():
pass
def func2():
pass
def func3():
pass
# ワイルドカード(*)でインポート
from my_module import *
- func1, func2, func3
- func1, func2
- func2, func3
- 何もインポートされない
答えはコチラをクリック!
答え:2
ポイント
モジュールに__all__属性が定義されている場合、from my_module imort* でインポートされるのは、__all__ リストに含まれる名前のみです。
この場合、__all__ = [‘func1’, ‘func2’]と指定されているため、func1とfunc2のみがインポートされます。
1, func1, func2, func3
→ 不正解。__all__ 属性が定義されている場合、__all__ に含まれない func3 はインポートされません。
3, func2, func3
→ 不正解。func3 は __all__ に含まれていないためインポートされません。
4, 何もインポートされない
→ 不正解。__all__ にリストされた func1 と func2 はインポートされます。
練習問題 4
randomモジュールのrandom()関数を実行する方法として、間違っているものを選択してください。
1. import random
print(random.random())
2. from random import random as rd
print(rd())
3. from random import random
print(random.random())
4. from random import *
print(random())
答えはコチラをクリック!
答え:3
ポイント
from ○○(モジュール) import △△(関数名) とインポートすると、関数はインポートされますが、モジュールはインポートされません。
from ○○(モジュール) import △△(関数名) という形でインポートされた関数は関数名を呼び出すだけで使えます。
また、「as」を使って別名を指定してインポートすることもできます。
確認問題 1
標準ライブラリのdatetimeモジュールにはdatetimeクラスが定義されており、その中にnow()メソッドがあります。このメソッドを実行する方法として正しいものを選択してください。
1. import datetime
print(datetime.now())
2. from datetime import now
print(now())
3. import datetime.now
print(datetime.now())
4. import datetime
print(datetime.datetime.now())
答えはコチラをクリック!
答え:4
datetimeモジュールの中のdatetimeクラスがあり、さらにその中のnow()メソッドを実行します。
import datetime でモジュールをインポートした後、datetime.datetime.now()でnowメソッドを実行できます。
確認問題 2
標準ライブラリの math モジュールに含まれる sqrt 関数を実行する方法として正しいものを選択してください。
1. sqrt(25)
2. import math
sqrt(25)
3. from math import sqrt
math.sqrt(25)
4. import math
math.sqrt(25)
答えはコチラをクリック!
答え:4
1. sqrt(25)
→不正解。 mathモジュールをインポートしていないため、sqrt関数を直接使うことはできません。
2. import math
sqrt(25)
→不正解。import math をしただけでは、sqrt関数は math.sqrt(25) のように math をつけて呼び出す必要があります。
3. from math import sqrt
math.sqrt(25)
→不正解。from math import sqrt を使うと sqrt(25) のように sqrt を直接呼び出せますが、 math.sqrt(25) のように math をつけるとエラーになります。
確認問題 3
次のコードを実行した結果として最も適切なものを選択してください。
ただし、utils モジュールに __all__ 属性は存在しないものとします。
from utils import *
1. utils モジュール内のすべての名前が使える
2. utils モジュール内の _ で始まらない名前が使える
3. utils モジュール名と、モジュール内のすべての名前が使える
4. utils モジュール名と、モジュール内の _ で始まらない名前が使える
答えはコチラをクリック!
答え:2
from utils import *
この構文を使用すると、utils モジュール内の _(アンダースコア)で始まらない名前 だけがインポートされます。
ただし、utils モジュールに __all__ が定義されていれば、そのリストに含まれるものだけがインポートされますが、今回は __all__ がない ため、デフォルトの動作になります。
確認問題 4
math モジュールの pow() 関数を実行する方法として、間違っているもの を選択してください。
1. import math
print(math.pow(2, 3))
2. from math import pow as p
print(p(2, 3))
3. from math import pow
print(math.pow(2, 3))
4. from math import *
print(pow(2, 3))
答えはコチラをクリック!
答え:3
from math import pow とした場合、pow()関数だけがインポートされます。
そのため、math モジュール自体はインポートされていないので、 math.pow(2, 3)を呼び出すとエラーになります。
次回は…
次回は「015_Pythonエンジニア認定基礎試験7-5~7」です。
モジュールについて学びましょう!
参考資料一覧:Python3エンジニア認定[基礎試験]問題集
https://www.pythonic-exam.com
https://data-engineer-japan.com
https://mynavi-agent.jp
https://python-basic.com
https://www.tokai-bs.co.jp
https://freelance.techcareer.jp/articles/wp/skills/python/detail/550/
https://pythonzen-pep8-exam.jp/