if __name__ ==__main __:Pythonで何をしますか?
Pythonインタープリターがソースファイルを読み取ると、そこにあるすべてのコードが実行されます。
コードを実行する前に、いくつかの特別な変数を定義します。たとえば、Pythonインタープリターがそのモジュール(ソースファイル)をメインプログラムとして実行している場合、特別な__name__変数に値"__main__"を設定します。このファイルが別のモジュールからインポートされている場合、__name__はモジュールの名前に設定されます。
これを行う理由の1つは、直接実行できるモジュール(.pyファイル)を作成する場合があるためです。または、インポートして別のモジュールで使用することもできます。メインチェックを実行することで、モジュールをプログラムとして実行する場合にのみコードを実行し、誰かがモジュールをインポートして関数を自分で呼び出したい場合にのみコードを実行しないようにすることができます。
たとえば、次のコードを持つ2つのファイルone.pyとtwo.pyがある場合:
one.py:
def func(): print("func() in one.py") print("Root of one.py") if __name__ == "__main__": print("one.py is being run directly") else: print("one.py is being imported")
Two.py:
import one print("Root of two.py") one.func() if __name__ == "__main__": print("two.py is being run directly") else: print("two.py is being imported")
今実行すると、
$ python one.py
出力が表示されます:
Root of one.py one.py is being run directly
しかし、実行すると
$ python two.py
出力が表示されます:
Root of in one.py one.py is being imported Root of in two.py func() in one.py two.py is being run directly
-
%はPythonの文字列に何をしますか?
%は、文字列フォーマット演算子または補間演算子です。 formatの%値(formatは文字列)を指定すると、formatの%変換仕様は、0個以上の値の要素に置き換えられます。この効果は、C言語でsprintf()を使用する場合と同様です。たとえば、 >>> lang = "Python" >>> print "%s is awesome!" % lang Python is awesome この表記で数値をフォーマットすることもできます。たとえば、 >>> cost = 128.527 >&
-
Pythonの文字列リテラルの前にある「b」文字は何をしますか?
Python2では「b」または「B」のプレフィックスは無視されます。 Python 3では、バイトリテラルの前には常に「b」または「B」が付いています。 str型ではなくbytes型のインスタンスを生成します。 ASCII文字のみを含めることができます。 128以上の数値のバイトは、エスケープで表す必要があります。 Python 3.xは、タイプを明確に区別します。 str =...リテラル=一連のUnicode文字(Pythonのコンパイル方法に応じてUTF-16またはUTF-32) バイト=b...リテラル=オクテットのシーケンス(0から255までの整数)