Python はオープンソースのスクリプト言語です。
+
-
*
/
//
==
!=
>
<
>=
<=
and
or
not
<<
>>
&
|
^
0b
0o
0x
PythonはPython Software Foundationの公式ウェブサイト(www.python.org)から入手する。
Ubuntu または Linux Mint には、あらかじめ Python がインストールされている。もし何らかの理由で Python をインストールするには、apt コマンドを実行する。
$ sudo apt install python3
Pythonのプログラムを実行するには、コマンドを逐次入力・実行する対話モードと、プログラムのソースコードをファイルに保存したものを実行する2通りの方法がある。
Pythonを対話モードで実行するには、まずPythonを起動する。 Pythonを起動すると、「>>>」という記号が表示される。これは、コマンドの入力を促す記号(プロンプト)である。ここでコマンドを入力してEnterキーを押すと、即座に実行される。
>>> print("Hello, world!")
Hello, world!
>>>
Pythonの構文規則にはインデント(字下げ)の決まりがあり、不要なところでインデントを行うと、エラーになる。たとえば、コマンドの前に空白やタブを入力するとエラーになる。
>>> print("Hello, world!")
Hello, world!
>>> print("Hello, world!")
File "<stdin>", line 1
print("Hello, world!")
^
IndentationError: unexpected indent
>>>
Pythonは電卓としても使用できる。コマンドプロンプトに数式を入力すると、計算結果が表示される。
>>> 1+2
3
>>> 3-4
-1
>>> 5*6
30
>>> 7/8
0.875
>>>
python3 コマンドには、以下に示すオプションを指定できる。
$ python -m pip install requests
$ python3 -h
$ python3 -?
$ python3 --help
$ python3 --version
Python 3.10.12
Python には、以下に示す算術演算子がある。
演算子 | 説明 |
---|---|
+ | 加算 |
- | 減算 |
* | 乗算 |
/ | 除算 |
// | 除算(小数点以下切り捨て) |
Python の算術合演算子 +
は、数値を加算する演算子である。
$ python3
>>> 1 + 2
3
Python の算術合演算子 -
は、数値を減算する演算子である。
$ python3
>>> 3 - 2
1
Python の算術合演算子 *
は、数値を乗算する演算子である。
$ python3
>>> 2 * 3
6
Python の算術合演算子 /
は、数値を除算する演算子である。
$ python3
>>> 5 / 2
2.5
Python の算術合演算子 //
は、数値を除算(小数点以下切り捨て)する演算子である。
$ python3
>>> 5 // 2
2
演算子 | 説明 |
---|---|
== | 等しい |
!= | 等しくない |
> | 大きい |
< | 小さい |
>= | 大きいか等しい |
<= | 小さいか等しい |
演算子 | 説明 |
---|---|
and | 論理積 |
or | 論理和 |
not | 否定 |
Python には、以下に示すビット演算子がある。
演算子 | 説明 |
---|---|
>> | 右ビットシフト |
<< | 左ビットシフト |
& | ビット論理積 |
| | ビット論理和 |
^ | ビット排他的論理和 |
Python で対話的にビット演算を行う例を以下に示す。
$ python3
>>> 8 >> 1
4
>>> 8 >> 2
2
>>> 8 << 1
16
>>> 8 << 2
32
Pythonで配列を作るには、次のようにする。
a = [0, 1, 2]
Pythonでは配列に異なる型のデータを入れることができる。
a = [1, 2, 'foo', 'bar']
list()関数を使って配列を作ることもできる。
a = list((0, 1, 2))
rangeオブジェクトから配列を作ることもできる。
a = range(10)
Python において文字列リテラルは以下のように表現する。
$ python3
>>> print('foo')
foo
$ python3
>>> print("foo")
foo
$ python3
>>> print('''foo''')
foo
$ python3
>>> print("""foo""")
foo
Python の文字列リテラルにおいて、特殊文字は以下のように表現する。
特殊文字 | 意味 | 備考 |
---|---|---|
\\ |
\ |
|
\' |
' |
シングルクォートの中で使う |
\" |
" |
ダブルクォートの中で使う |
文字列リテラルでバックスラッシュを表す場合、特殊文字「\\
」で表す。
$ python3
>>> print('foo\\bar')
foo\bar
文字列リテラルをシングルクォートで表す場合、その文字列内でシングルクォートは特殊文字「\'
」で表す。ダブルクォートの中でシングルクォートを表す場合、特殊文字を使う必要はない。
$ python3
>>> print('foo\'bar')
foo'bar
>>> print("foo'bar")
foo'bar
文字列リテラルをダブルクォートで表す場合、その文字列内でダブルクォートは特殊文字「\"
」で表す。シングルクォートの中でダブルクォートを表す場合、特殊文字を使う必要はない。
$ python3
>>> print("foo\"bar")
foo"bar
>>> print('foo"bar')
foo"bar
Python の結合演算子 +
は、文字列と文字列を結合する演算子である。
$ python3
>>> print('foo' + 'bar' + 'baz')
foobarbaz
文字列を結合するには、str.join() メソッドを使う。
separater.join(iterable)
$ python3
>>> '-'.join(['foo', 'bar', 'baz'])
'foo-bar-baz'
結合する各文字列を配列で指定する例を次に示す。
$ python3
>>> ''.join(['foo', 'bar', 'baz'])
'foobarbaz'
結合する各文字列を tuple で指定する例を次に示す。
$ python3
>>> ''.join(('foo', 'bar', 'baz'))
'foobarbaz'
結合する各文字列を dict で指定する例を次に示す。
$ python3
>>> ''.join({'foo': 1, 'bar': 2, 'baz': 3})
'foobarbaz'
空白で区切られた文字列を分割してリストにするには、split メソッドを使う。
s = "foo bar baz"
print(s.split())
引数で区切り文字を指定することもできる。
s = "foo bar baz"
print(s.split(','))
Pythonでは #
から行末まではコメント(注釈)となる。コメントはスクリプトの実行に影響を与えない。
print(i) # 表示
他のプログラミング言語によくある複数行コメントはPythonには無い。
他のプログラミング言語では、変数とは別に定数の定義方法が提供されている。Python では定数の定義方法が提供されていないため、変数と同様の方法で定数を定義する。なお、Python では定数名を大文字で定義するのが慣例として定着している。
DEFINE_MAX = 10
XML_DECLARATION = '<?xml version="1.0" encoding="UTF-8"?>'
ただの変数であるため、値を変更することを防ぐことはできない。
Pythonで繰返し処理を行うには、for
文を使う。
for counter in range(5):
print(counter)
配列の要素ごとに処理を繰り返すスクリプトの例を以下に示す。
for item in ['foo', 'bar', 'baz']:
print(item)
上記のスクリプトを実行した例を以下に示す。
$ pyhon3 example.py
foo
bar
baz
tumple の要素ごとに処理を繰り返すスクリプトの例を以下に示す。
for item in (1, 2, 3):
print(item)
上記のスクリプトを実行した例を以下に示す。
$ pyhon3 example.py
1
2
3
dict の要素ごとに処理を繰り返すスクリプトの例を以下に示す。
for item in {'a': 1, 'b': 2, 'c': 3}:
print(item)
上記のスクリプトを実行した例を以下に示す。
$ pyhon3 example.py
a
b
c
スクリプトに渡されたコマンドライン引数ごとに処理を繰り返すスクリプトの例を以下に示す。
import sys
for arg in sys.argv:
print(arg)
上記のスクリプトを実行した例を以下に示す。
$ pyhon3 example.py foo bar
example.py
foo
bar
Pythonで条件判定を行うには、if文を使う。
if i == 1:
print(i)
elif i == 2:
print(i)
else:
print(i)
Pythonで前判定による繰返し処理を行うには、while文を使う。
while i < 10:
print(i)
i = i + 1
Python で関数を定義するには、以下のようにする。
def function_name(arg1, arg2, ...):
statement
list型のオブジェクトを生成するには、list()関数を使う。
a = list((0, 1, 2))
range型のオブジェクトを生成するには、range()関数を使う。
for i in range(3):
print(i)
Python の os モジュールは、OS に依存する機能を提供する。
ディレクトリツリー以下のファイル名を、ツリーをトップダウンもしくはボトムアップに走査することで作成する。
os.walk(top, topdown=True, onerror=None, followlinks=False)
タプル (dirpath, dirnames, filenames) を返す。
Python は正規表現を扱うための re モジュールを提供している。re モジュールは、正規表現を扱うためのフラグ、関数および例外を提供している。
Python で正規表現を扱うためには、re モジュールをインポートする。
import re
正規表現のリテラルは、r
に続けて、正規表現をシングルクォートで囲む。
r'foobar'
正規表現のリテラルの中で、特殊文字を使うことができる。
正規表現の特殊文字 ^
は、文字列の先頭にマッチする。
r'^foo'
は 'foo'
や 'foobar'
にマッチするが、'barfoo'
にはマッチしない。
正規表現の特殊文字 $
は、文字列の末尾にマッチする。
r'foo$'
は 'foo'
や 'barfoo'
にマッチするが、'foobar'
にはマッチしない。
正規表現の特殊文字 *
は、直前の正規表現を0回以上繰り返したものにマッチする。
正規表現の特殊文字 +
は、直前の正規表現を1回以上繰り返したものにマッチする。
正規表現の特殊文字 ?
は、直前の正規表現を0回か1回繰り返したものにマッチする。
正規表現の特殊文字 {m}
は、直前の正規表現を m 回繰り返したものにマッチする。
正規表現の特殊文字 {m,n}
は、直前の正規表現を m 回から n 回、なるべく多く繰り返したものにマッチする。
正規表現の特殊文字 []
は、カッコ内に列挙した文字のうち、いずれか一文字にマッチする。
[0123456789]
は [0-9]
と表現することもできる。
[abcdefghijklmnopqrstuvwxyz]
は [a-z]
と表現することもできる。
[ABCDEFGHIJKLMNOPQRSTUVWXYZ]
は [A-Z]
と表現することもできる。
正規表現の特殊文字 A | B
は、A または B のいずれかにマッチする。
正規表現の特殊文字 ()
は、カッコ内の正規表現をグループ化する。
正規表現の特殊文字 \d
は、任意の数字にマッチする。正規表現の [0-9] と同じである。
正規表現の特殊文字 \D
は、任意の数字以外にマッチする。正規表現の [^0-9] と同じである。
正規表現の特殊文字 \s
は、任意の空白文字にマッチする。正規表現の [\t\n\r\f\v] と同じである。
正規表現の特殊文字 \S
は、任意の空白文字以外にマッチする。正規表現の [^\t\n\r\f\v] と同じである。
正規表現の特殊文字 \w
は、任意の英数字にマッチする。正規表現の [a-zA-Z0-9_] と同じである。
正規表現の特殊文字 \W
は、任意の英数字以外にマッチする。正規表現の [^a-zA-Z0-9_] と同じである。
文字列の先頭が指定した正規表現にマッチすれば、対応する Match を返す。もし、文字列がパターンとマッチしなければ、None を返す。
import re
s = "string"
m = re.match(r('[a-z]+'), s)
文字列の指定した正規表現にマッチすれば、対応する Match を返す。もし、文字列がパターンとマッチしなければ、None を返す。
import re
s = "index.html"
m = re.searc(r('html$', s)
Python からWeb APIを呼び出すには、requestsモジュールをインポートする。そのため、初めに一度だけrequestsモジュールをインストールする必要がある。
Pythonのrequestsモジュールをインストールするには、次のコマンドを実行する。
pip install requests
または、次のコマンドを実行する。
python -m pip install requests
request モジュールは以下に示すクラスを提供している。
Request クラスは以下に示すプロパティを持つ。
Responseオブジェクトは、HTTPリクエストに対するサーバーのレスポンスを含む。
Response クラスは以下に示すプロパティを持つ。
HTTPプロトコルの要求をGETメソッドで送信する。戻り値としてRequestオブジェクトを返す。
get(url, **kwargs)
get メソッドには以下の引数を指定する。
HTTPプロトコルの要求を送信する。戻り値としてRequestオブジェクトを返す。
requests.request(method, url, **kwargs)
request メソッドには以下の引数を指定する。
MMXVIX. A Kenneth Reitz Project. (2024) Requests: HTTP for Humans
datetimeオブジェクトのnowメソッドで現在の日付と時刻を取得できる。
import datetime
dt_now = datetime.datetime.now()
print(dt_now)
Python の sys モジュールは、インタプリタで使用・管理している変数や、インタプリタの動作に深く関連する関数を定義している。このモジュールは常に利用可能である。
説明 | |
---|---|
sys.argv | Python スクリプトに渡されたコマンドライン引数のリスト |
sys.argv は、Python スクリプトに渡されたコマンドライン引数のリストを表す。argv[1] 以降にコマンドライン引数が格納され、argv[0] にはスクリプト名が格納される。
渡されたコマンドライン引数を表示するスクリプトを以下に示す。
import sys
for arg in sys.argv:
print(arg)
スクリプトの実行例を次に示す。
$ python3 example.py foo bar
example.py
foo
bar