An Embedded Engineer’s Blog

とある組み込みエンジニアの備忘録的なブログです。

Python学習メモ - その1

まえがき

最近、Pythonを勉強し始めたので、その学習メモです。


Hello, World

まずは、おなじみの「Hello, World」から。

print('Hello, World')

実行結果

Hello, World

余計なものは何もいらない。そうPythonならね。


文字列処理

続いてはよく使う文字列処理です。


文字列リテラル

Pythonでは、シングルクォート('')とダブルクォート("")のどちらでも文字列と認識されます。

print('Single Quote String')
print("Double Quote String")

実行結果

Single Quote String
Double Quote String


複数行文字列

文字列を3連クォートでくくることによって、複数行の文字列を定義することができます。

multiline_str = """line1
line2
line3
"""

print(multiline_str)

実行結果

line1
line2
line3


もしくは、改行文字("\n")を含めることでも複数行の文字列を定義することができます。

multiline_str = "line1\nline2\nline3"

print(multiline_str)

実行結果

line1
line2
line3


文字列連結

文字列の連結は"+"演算子で行うことができます。

concat_str1 = "con" + "cat" + "_" + "str"

print(concat_str1)

実行結果

concat_str


変数に格納した文字列に、"+"演算子で次々に連結して行くこともできます。

concat_str2 = "con"
concat_str2 = concat_str2 + "cat"
concat_str2 = concat_str2 + "_"
concat_str2 = concat_str2 + "str"

print(concat_str2)

実行結果

concat_str


また、"+="演算子を使用することで、同じ変数に対して次々と連結していくことができます。

concat_str2 = "012"
concat_str2 += "34"
concat_str2 += "567"
concat_str2 += "8"
concat_str2 += "9"

print(concat_str2)

実行結果

0123456789


繰り返し

文字列の繰り返しは"*"演算子で繰り返し回数をかけることで定義できます。

repeat_str1 = "abc" * 3

print(repeat_str1)

実行結果

abcabcabc


文字列の連結("+")と繰り返し("*")を組み合わせて行うこともできます。

repeat_str2 = ("test" + "_") * 5 + "test"

print(repeat_str2)

実行結果

test_test_test_test_test_test


文字列変換

数値などを文字列に変換する場合には、str()関数を使用します。

int_value = 100
int_str = str(int_value) + "%"

print(int_str)

float_value = 3.14
float_value = "π = " + str(float_value)

print(float_value)

実行結果

100%
π = 3.14


大文字/小文字変換

文字列のアルファベットをすべて大文字にするためにはupper()メソッドを使用します。
また、すべて小文字にするためにはlower()メソッドを使用します。

input_str = "TesT"

print(input_str.upper())
print(input_str.lower())

実行結果

TEST
test


置換

文字列を置換するためには、replace()メソッドを使用します。

input_str = "Hello, World"

print(input_str)

replace_str = input_str.replace("World", "Japan")

print(replace_str)

実行結果

Hello, World
Hello, Japan


分割

文字列を特定の区切り文字で分割するためには、split()メソッドを使用します。

分割された文字列はlist 型で返されます。

input_str = "a,b,c,d,e,f"

print(input_str)

split_str = input_str.split(",")

print(split_str)

実行結果

a,b,c,d,e,f
['a', 'b', 'c', 'd', 'e', 'f']


桁揃え

数値などの桁揃えを行いたいときは、rjust()メソッド、ljust()メソッドを使用します。

rjust() / ljust()メソッドの引数には、揃えたい桁数と桁揃え時に埋め込む文字を指定します。

例えば、10桁に満たない数値の左端を0で埋めたい場合には、以下のようにrjust()メソッドを使用します。

input_str = "1234"

print(input_str.rjust(10, "0"))

実行結果

0000001234


0埋めなどをせず、単純な左揃え、右揃えをしたい場合には、空白を指定してrjust()メソッド、ljust()メソッドを使用します。

input_str = "1234"

print("|" + input_str.rjust(5, " ") + "|")

print("|" + input_str.ljust(5, " ") + "|")

実行結果

| 1234|
|1234 |


0埋め

特定の文字埋めをせず、単純な0埋めのみをしたい場合には、zfill()メソッドを使用します。

input_str = "1234"

print(input_str.zfill(5))
print(input_str.zfill(3))

実行結果

01234
1234


検索

ある文字列が、特定の文字列から始まるかどうかを判定する場合には、startswith()メソッドを使用します。

input_str = "Hello, World"

print(input_str.startswith("Hello"))
print(input_str.startswith("World"))

実行結果

True
False


逆に、ある文字列が、特定の文字列で終わるかどうかを判定する場合には、endswith()メソッドを使用します。

input_str = "Hello, World"

print(input_str.endswith("Hello"))
print(input_str.endswith("World"))

実行結果

False
True


また、ある文字列に特定の文字列が含まれているかどうかを判定する場合には、"in"演算子を使用します。

input_str = "test"

print("e" in input_str)
print("a" in input_str)

実行結果

True
Flase


先頭/末尾の削除

文字列の先頭や末尾から特定の文字を削除したい場合には、lstrip()メソッド、rstrip()メソッドを使用します。
メソッドの引数に何も指定しない(引数を省略した)場合は、空白を除去します。
メソッドの引数に特定の文字列を指定した場合は、指定された文字列を除去します(lstrip()メソッドの場合は、指定文字列から始まる場合、rstrip()メソッドの場合は指定文字列で終わる場合のみ)。

input_str = "     1_test_1     "
print("|" + input_str + "|")

input_str = input_str.lstrip()
print("|" + input_str + "|")

input_str = input_str.lstrip("1_")
print("|" + input_str + "|")

input_str = input_str.lstrip("_1")
print("|" + input_str + "|")

print()

input_str = "     1_test_1     "
print("|" + input_str + "|")

input_str = input_str.rstrip()
print("|" + input_str + "|")

input_str = input_str.rstrip("_1")
print("|" + input_str + "|")

input_str = input_str.rstrip("1_")
print("|" + input_str + "|")

実行結果

|     1_test_1     |
|1_test_1     |
|test_1     |
|test_1     |

|     1_test_1     |
|     1_test_1|
|     1_test|
|     1_test|


ある文字列の、先頭および末尾に含まれる余分な空白を除去したい場合には、lstrip()メソッドとrstrip()メソッドを組み合わせて以下のように呼び出します。

input_str = "    test    "
print("|" + input_str + "|")

input_str = input_str.lstrip().rstrip()
print("|" + input_str + "|")

実行結果

|    test    |
|test|


参考文献

Python 公式リファレンス

https://docs.python.org/ja/3.7/index.html

Python-izm

https://www.python-izm.com/

ゲームを作りながら楽しく学べるPythonプログラミング

エキスパートPythonプログラミング

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)