文 (statement)

単純文 (simple statement)

import文

モジュールやパッケージを取り込めます。

import foo                 # foo imported and bound locally
import foo.bar.baz         # foo, foo.bar, and foo.bar.baz imported, foo bound locally
import foo.bar.baz as fbb  # foo, foo.bar, and foo.bar.baz imported, foo.bar.baz bound as fbb
from foo.bar import baz    # foo, foo.bar, and foo.bar.baz imported, foo.bar.baz bound as baz
from foo import attr       # foo imported and foo.attr bound as attr
7.11. The import statement - 7. Simple statements — Python 3.x documentation

from

fromを使用して取り込むことで、関数や変数をパッケージ名やモジュール名を省略して参照できます。6.4. パッケージ - 6. モジュール — Python 3.x ドキュメント

たとえばimport package.moduleとして取り込むだけだと、そこで定義されている関数はpackage.module.func()のように呼ぶ必要がありますが、from package import moduleとするとmodule.func()のように呼べます。

インポートの失敗

circular import (循環インポート)

「(most likely due to a circular import)」としてインポートに失敗するならば、このcircular importが発生していないか確認します。たとえばファイル名がfoo.pyのときにfrom foo import attrとすると、このエラーが発生します。

ModuleNotFoundError

ModuleNotFoundError: No module named '***'」としてモジュールを見つけられないならば、

pip list

として、そのモジュールを含むパッケージがインストールされているか確認します。

インポートを解決できない

VS Codeで「インポート "***" を解決できませんでした Pylance(reportMissingImports) (Import "***" could not be resolved Pylance(reportMissingImports))」としてモジュールを見つけられないならば、[Preferences: Open User Settings]の[python.analysis.extraPaths]にそのモジュールのパスを追加します。 python - Visual Studio Code Pylance (report Missing Imports ) - Stack Overflow Python Language Server settings - Python settings reference

assert文

assert expression1, expression2

とすることは、

if __debug__:
    if not expression1: raise AssertionError(expression2)

と等しく、最適化が要求されていないときにexpression1がFalseと評価されたときにAssertionError例外が投げられ、expression2と説明されます。

7.3. The assert statement - 7. Simple statements — Python 3.x documentation

複合文 (compound statement)

if文

x = 1

if x < 0:
    print("negative")
elif x == 0:
    print("zero")
else:
    print("positive")

4.1. if 文 - 4. その他の制御フローツール — Python x ドキュメント

if_stmt ::= "if" assignment_expression ":" suite
            ("elif" assignment_expression ":" suite)*
            ["else" ":" suite]
8.1. The if statement - 8. Compound statements — Python 3.x documentation

match文

Cなどのswitchに相当します。4.7. match 文 - 4. その他の制御フローツール — Python 3.x ドキュメント

while文

8.2. while 文 - 8. 複合文 (compound statement) — Python 3.x ドキュメント

C++のようなdo-whileはないため、while Trueでループさせ、条件に一致したときにbreakでループを抜けさせます。

while True:
    statement
    if expression:
        break
python - How to emulate a do-while loop? - Stack Overflow

for文

たとえば10回くり返すならば、次のようにします。

for i in range(10):
    print(i)

こうすると0、1、… 9と順に出力されます。

8.3. The for statement - 8. Compound statements — Python 3.x documentation 4.2. for 文 - 4. その他の制御フローツール — Python 3.x ドキュメント

try文

例外を処理します。8.4. try 文 - 8. 複合文 (compound statement) — Python 3.x ドキュメント

with文

try…except…finallyのパターンを簡潔に記述できます。8.5. The with statement - 8. Compound statements — Python 3.x documentation

pass文

何もしません。構文上、何かを記述する必要があるが、何も処理がないときに用います。4.6. pass 文 - 4. その他の制御フローツール — Python 3.x ドキュメント