Pythonスクリプトファイルの拡張子は .py(例: test.py) です。Python 2 で Hello world! を出力するプログラムは下記の様に記述します。
print "Hello world!"
Python 3 では下記の様に記述します。以降では基本的に Python 3 に従って記述していきます。
print("Hello world!")
プログラムが完成したら、次のように実行します。Python 3 の場合コマンドが python3 となる場合があります。
python test.py
Python では、改行が文の区切りとなります。改行は Linux系の LF、Windows系の CR LF、旧Mac系の CR いずれも利用できます。
print("Hello") print("World")
Perl や PHP の様にセミコロン(;)で区切ることもできます。
a = 5; b = 3; c = a + b print(c)
文を数行に分けて記述したい場合は、行末にバックスラッシュ(\)を書きます。
total = 123 \ + 456 \ + 789
(...), [...], {...} 中のカンマ(,)の後ろはバックスラッシュ(\)を省略することができます。
months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]
ハッシュ(#)から行末まではコメントとみなされます。
print("Hello") # Helloと表示します
ただし、バックスラッシュによる継続行の箇所にはコメントを記述することができません。
total = 123 \ # ここにコメントは記述できない + 456 # ここには記述できる
カンマ(,)による継続行にはコメントを記述することができます。
months = [ 'Jan', 'Feb', 'Mar', 'Apr', # ここにはコメントを記述できる 'May', 'Jun', 'Jul', 'Aug', # ここにはコメントを記述できる 'Sep', 'Oct', 'Nov', 'Dec' ]
Perl や PHP では文を { ... } で囲むことでブロック(複文)を構成しますが、Python ではインデント(行頭の空白文字の数)が重要な意味を持ち、同じ数の空白やタブ文字でインデントされた文がブロックとみなされます。
a = 3 if a == 5: print("AAA") # if文の対象 print("BBB") # if文の対象 print("CCC") # if文の対象ではない
インデントは通常4個の空白文字を使用します。
if a == 5: print("AAA") # 4個の半角空白文字
インデントにタブ文字(U+0009)を用いる場合、半角スペースを用いるか、タブ文字を用いるか統一が必要です。統一されていない場合 TabError: inconsistent use of tabs and spaces in indentation エラーが発生します。
if a == 5:
print("AAA") # この行は半角スペースインデントなのに
[=TAB==]print("BBB") # この行がタブインデントだと TabError
スクリプトの1行目か2行目に coding[=:]\s*([-\w.]+) にマッチするコメントが記述されていると、スクリプトが指定されたエンコードルール(文字セット)で記述されているものとみなします。Python 2 で日本語を扱う場合は必須でしたが、Python 3 では記載が無い場合は utf-8 とみなすようになりました。
# coding: utf-8 print("Hello world") # 文字列やコメントに日本語を使えるようになります
UNIX系のテキストエディタ Emacs との互換性を考慮し、下記の様に記述することもあります。
# -*- coding: utf-8 -*-
エンコードルールには下記などがあります。
# coding: utf-8 # coding: Shift_JIS # coding: EUC-JP # coding: cp932
print は Python 2 と Python 3 で実装が変わっています。Python 2 では括弧無しで引数を指定します。
print "ABC"
Python 3 では括弧付きで引数を指定します。
print("ABC")
引数には数値、配列、タプル、オブジェクトなどを指定することができます。
print(3) #=> 3 print([1, 2, 3]) #=> [1, 2, 3] print((1, 2, 3)) #=> (1, 2, 3) print({'k1':10, 'k2':20}) #=> {'k2': 20, 'k1': 10}
引数をカンマ(,)で複数指定すると、ひとつのスペースで区切って複数の値を表示します。
print("AAA", "BBB") #=> AAA BBB
通常は、最後に改行(\n)を書き出します。Python 2 では最後の引数の後ろにカンマ(,)をつけると、改行しません。
print "AAA", # 改行しない print "BBB" # 改行する
Python 3 では end="" を指定することで改行無しとなります。
print("AAA", end="") # 改行しない print("BBB") # 改行する
下記の様に、フォーマットを指定することもできます。
print("My name is %s." % "Tanaka") print("%s is %d years old." % ("Tanaka", 28)) print("%(name)s is %(age)d years old." % {'name': "Tanaka", 'age': 28})
Python 2 で標準出力以外に出力するには、>> を用います。
f = open("test.txt", "w") print >> f, "Hello world!" f.close()
Python 3 では file= を用います。
f = open("test.txt", "w") print("Hello world!", file=f) f.close()