Python - 構文

式文

Python では、改行が文の区切りとなります。

print("Hello")
print("World")
文の区切り

文の区切りは ; で表すこともできます。

a = 5; b = 3; c = a + b
print(c)
文の区切り

Python でプログラムコードの行を継続するには、継続文字の \ を使用します。行末に \ を加えると、Python はまだ行替えをしていないものと判断します。

例えば、一般的な継続文字を使用せずに長い文字列を作る場合は以下のようなコードになります。

>>> alphabet = ''
>>> alphabet += 'abcdefg'
>>> alphabet += 'hijklmnop'
>>> alphabet += 'qrstuv'
>>> alphabet += 'wxyz'
長い文字列

しかし、継続文字を使うと以下のように記述することができます。

>>> alphabet = 'abcdefg' + \
...            'hijklmnop' + \
...            'qrstuv' + \
...            'wxyz'
継続文字を使った長い文字列

(...), [...], {...} 中のカンマの後ろは \を省略することができます。

months = [ 'Jan', 'Feb', 'Mar', 'Apr',
           'May', 'Jun', 'Jul', 'Aug',
           'Sep', 'Oct', 'Nov', 'Dec' ]
継続文字の省略

コメントアウト

Python でプログラムをコメントアウトするには # 文字を使用します。# 文字を使用すると、Python はその文字が現れたところから行末までを無視します。コメントは、ブロックコメントとインラインコメントに分類され、行の先頭からのコメントをブロックコメント、途中からのコメントをインラインコメントと呼びます。また、他の言語のように複数行をコメントアウトする /* ... */ のような文字は Python にはありません。

# ブロックコメント
print(xxx)  # インラインコメント
Python のコメントアウト

ただし、文字列の中に # 文字が含まれる場合は、コメントアウトする文字ではなくただの # 文字として扱われます。

>>> print("No comment: quotes make the # harmless.")
No comment: quotes make the # harmless.
(コメントではない。クォートを使うと#は無力になる。)
Python のコメントアウト

Python のコーディングルールをまとめたドキュメントである PEP8 の中には # 文字を使ったコメントについても推奨のルールが記載されています。

PEP8 のルールを遵守しなくとも文法上のエラーになるわけではありません。ただし、組織やプロジェクト、チームなどの複数人体制で開発を行う場合、コーディング規約として PEP8 に従った方が良いでしょう。

文とコメントの間は少なくとも 2 つのスペースを置くようにします。3 つ以上でも問題ありませんが、コメントの位置を揃えるために不要なスペースは除去します。

# No:
a = 1 # comment

# Yes:
a = 1  # comment

a = 1      # comment
xyz = 100  # comment
Python のコメントアウト (PEP8 推奨ルール)

インラインコメントは # 文字と、スペース 1 つから始めます。# 文字のあとにスペースが無くても 2 つ以上あってもいけません。

# No:
a = 1  #comment
a = 1  #  comment

# Yes:
a = 1  # comment
Python のコメントアウト (PEP8 推奨ルール)

ブロックコメントはコメント内でインデントされたテキストでない限り # 文字と、スペース 1 つから始めます。# 文字のあとにはスペースが 1 つ以上必要です。

# No:
#comment

# Yes:
# comment
#     indented comment
Python のコメントアウト (PEP8 推奨ルール)

先頭の # 文字は 1 つだけにします。

# No:
## comment

# Yes:
# comment
Python のコメントアウト (PEP8 推奨ルール)

インデント

Python ではインデントされた文がブロック (複文) とみなされます。インデントは、通常 4 個の空白文字を使用します。タブ文字は、インデントが 8 の倍数になるように 1~8 個の空白文字とみなされます。

a = 3
if a == 5:
    print("A")    # if文の対象
    print("B")    # if文の対象
print("C")        # if文の対象ではない
インデントによるブロック

エンコードルール

日本語など、ASCII 以外の文字を含むスクリプトを作成する場合は、スクリプトの 1 行目、または 2 行目にスクリプトのエンコードルールを指定してください。

# coding: utf-8

print "Hello world"    # 文字列やコメントに日本語を使えるようになります
エンコードルール

Emacs との互換性を考慮する場合、下記の様に記述することもできます。

# -*- coding: utf-8 -*-
エンコードルール

utf-8 以外のエンコードルールには以下などがあります。

# coding: Shift_JIS
# coding: EUC-JP
# coding: cp932
エンコードルール

関連記事

Python 全体の仕様を体系的にまとめたページは、プログラミング Python 入門を参照してください。

Category:
プログラミング
公開日:
更新日:
Pageviews:
56
Shares:
1
Tag:
Python
hatebu icon
hatebu