「とりあえずPythonでちょっとプログラムを作りたい」といったとき、適当に書けば動くので問題ないのですが、個人的には気持ちが悪いのです。
C言語でいう冒頭の#include<stdio.h>…のような基本的に書いておくといいPythonの必要最低限な記述をまとめました。(まとめたと言っても見ればわかる程度ですが)
わたしの中で、必要最低限な先頭行の記述は、3種類ありました。
1.最低限動かしたいとき
2.直接実行したいとき(LinuxやUNIX環境)
3.モジュールとして使いたいとき(別ファイルから呼び出したいとき)
とりあえず動かしたい時は1でOKです。
最低限動かしたいとき
最低限は、こちら。
# -*- coding: utf-8 -*- # 以下プログラム : :
冒頭に
# -*- coding: utf-8 -*-
をつけるだけです。(*の両側はハイフンです)
意味は「このソースの文字コードはUTF-8ですよ」という意味です。
coding: の後は文字コード名を記述します。
お使いの環境によって変化すると思いますが、OS問わずUTF-8なら日本語でも問題ないので安心かと思います。
直接実行したいとき(LinuxやUNIX環境)
LinuxやUNIX環境などでPythonプログラムを直接実行したいときは、次のような記述がひな型となります。
Pyhton3環境の場合
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 以下プログラム : :
Python2環境の場合
#!/usr/bin/env python # -*- coding: utf-8 -*- # 以下プログラム : :
直接実行というのは、例えばtest.pyというPythonプログラムをコマンドラインから実行する場合、
python test.py[ENTER]
としますが、これを直接
test.py[ENTER]
で実行したい場合を言います。
もちろん直接実行したいファイルtest.pyの実行許可を
chmod +x test.py[ENTER]
で実行許可しておく必要があります。
先頭の
#!/usr/bin/env python3
の部分は、Python実行環境へのパスで「#!」で始まる行のことをshebangと呼ばれています。
モジュールとして使いたいとき(別ファイルから呼び出したいとき)
最後は、モジュールとして使う場合の記述です。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- def test(): print('Hello! from Python.') if __name__ == '__main__': test()
if __name__ == ‘__main__’:
の記述がそれです。
def test()で関数宣言していますが、これはあくまで説明用ですので無くてもOKです。
if __name__ == ‘__main__’:については、以下のリンクに詳しく書いてあります。
【Python入門】モジュールを扱う際に重要な「if __name__ == ‘__main__’:」とは?
「モジュールとして使う」というのは、分かりやすく言えば、上記の関数testを別ファイルから実行したいときのことを指します。
上記ファイルを単独で実行すると関数testが実行され、画面には
Hello! from Python.
と表示されます。要するにif __name__ == ‘__main__’が実行された形です。
このファイルをhoge.pyとして保存し、関数testを別のファイルから再利用したいときは、利用したいファイルで
import hoge test()
とすれば、簡単に利用することができます。
こういう作りを、Pythonではモジュール化と呼んでいます。
importを使って呼び出せる訳です。
以上、Pythonで必要最低限な先頭行の記述でした。
コメント