Pythonプログラミング



文字列

文字列の表示

Pythonの文字列は、“abc” (ダブルクォート) または ‘abc’ (シングルクオート) で囲みます。

>>> print("Hello, World")
Hello, World

>>> print('Hello, World')
Hello, World

文字列の操作

結合

>>> "abc" + "cde"
'abccde'

フォーマット

整数
>>> format(123, '5d')
'  123'

>>> format(123, '05d')
'00123'

浮動小数点数
>>> format(123.45, '5.2f')
'123.45'

>>> format(123.45, '8.2f')
'  123.45'

>>> format(123.45, '08.2f')
'00123.45'

>>> format(123.45, '08.4f')
'123.4500'

{}を使った記法。複数の値をフォーマットするときに便利。

>>> '{:5d}'.format(123)
'  123'

>>> '{:5d} {:5d}'.format(123, 456)
'  123   456'

>>> 'name = {:s}, age = {:3d}, weight = {:5.1f}[kg]'.format('Bob', 20, 71.3)
'name = Bob, age =  20, weight =  71.3[kg]'

位置引数で、出現位置を指定できる。
>>> '{0} {1} {2}'.format('a', 'b', 'c')
'a b c'
>>> '{0} {2} {1}'.format('a', 'b', 'c')
'a c b'

出現位置を指定しながら、フォーマットを指定できる。
```python
>>> '{0:4s} {2:4s} {1:4s}'.format('a', 'b', 'c')
'a    c    b   '

数値

整数

>>> 123 + 456
579

インクリメント、デクリメント (++、–は使えないので注意。)

>>> x = 0
>>> x += 1
>>> print(x)
1
>>> x -= 1
>>> print(x)
0

除算は実数としての除算(/)と、整数除算の商(//)がある。

>>> 11 / 2 
5.5
>>> 11 // 2 
5

浮動小数点数

Pythonではfloat型は倍精度である。(8バイト)

>>> 123.45 + 456.78
580.23

その他、Decimal型(固定小数点数), Fraction型(有理数), complex型(複素数)がある。

数値の型の変換

整数に変換

>>> int(12.34)
12

浮動小数点数に変換

>>> float(12)
12.0

論理型

>>> x = 3
>>> x > 0
True
>>> x < 0
False
>>> x == 3
True

リスト

x = [1, 2, 3]
y = ['a', 'b', 'c']
z = []

リストのリストも作れる。

x = [[1, 2], [3, 4, 5], [6]]

要素の型が混在していてもよい。

x = ['a', 1.23, ['b', 4]]

for文でループの要素を参照する。

>>> x = ['a', 'b', 'c']
>>> for y in x:
...     print(y)
... 
a
b
c

その他、よく使う関数。

 list.append(x) 

リストの末尾に要素を一つ追加します。

 a[len(a):] = [x] 
と等価です。

 list.extend(iterable) 

イテラブルのすべての要素を対象のリストに追加し、リストを拡張します。

a[len(a):] = iterable 
と等価です。

list.insert(i, x) 

指定した位置に要素を挿入します。第 1 引数は、リストのインデクスで、そのインデクスを持つ要素の直前に挿入が行われます。従って、

 a.insert(0, x) 
はリストの先頭に挿入を行います。また a.insert(len(a), x) は a.append(x) と等価です。

list.remove(x) 

リスト中で x と等しい値を持つ最初の要素を削除します。該当する要素がなければ ValueError が送出されます。

 list.pop([i]) 

リスト中の指定された位置にある要素をリストから削除して、その要素を返します。

タプル

>>> x = (1, 2, 3)
>>> for i in x:
...     print(i)
... 
1
2
3

辞書型(ディクショナリ)

>>> x = {'a':123, 'b':456, 'c':789}
>>> 
>>> x['a']
123
>>> x['b']
456
>>> x['c']
789

集合型(セット)

inを使って、集合の中に要素が存在するかをチェックできる。

>>> x = {'a', 'b', 'c', 'd'}
>>> 'a' in x
True
>>> 'e' in x
False

制御構造

if文

>>> x = 10
>>> if x > 0:
...     print('x is positive')
... elif x < 0:
...     print('x is negative')
... else:
...     print('x is zero')
... 
x is positive

for文

range関数を用いて、制御変数が変化する範囲を指定する。 引数nが与えられると、制御変数が0からn-1まで変化する。 次の例では、iが0から4(=5-1)まで変化する。

>>> for i in range(5):
...     print(i)
... 
0
1
2
3
4
>>> for i in range(2,5):
...     print(i)
... 
2
3
4

増分値を指定することもできる。

>>> for i in range(2,10,2):
...     print(i)
... 
2
4
6
8

増分に負の数も指定できる。終了値以下になるとループを抜ける。

>>> for i in range(10,5,-1):
...     print(i)
... 
10
9
8
7
6

while文

条件が成立している間、ループが実行される。

>>> x = 0
>>> while x < 3:
...     print(x)
...     x = x + 1
... 
0
1
2

ループ中では、C言語のようにbreak, continueが使える。

2019.10.29