Python

Python標準ライブラリの組み込み型【数値・文字列編】

こんにちは。Taka です。

前回、ついに Python で Hello World! を出力することにチャレンジしました。
プログラミングや Python 習得の第一歩を踏み出したという状態でしょうか。
今回は Pythonのライブラリについて解説をしていき、少しずつ理解を深めていきます。

Python は 標準ライブラリ外部ライブラリの2種類があります。

標準ライブラリ:Python が標準で組み込んでいるライブラリのこと

外部ライブラリ:Pandas や Numpy であれば計算やデータ処理、Matlotlib であればグラフ描写とあるオペレーションに特化したライブラリであり、Anaconda を利用していない場合は、事前にインストールが必要。

外部ライブラリの種類は豊富で、個別に理解をする必要があるのでまた別の機会にするとして、今回は、Python 標準ライブラリの中を少し覗いてみましょう!

Python標準ライブラリとは何か?

Python 標準ライブラリについて、
まずは公式ページの Python 標準ライブラリ (Python 3.7.1)を開いてみましょう。

標準ライブラリといえど、目次に記載がある項目だけでもかなり多くの数があることがわかります。すべて理解するのは結構大変そうなので、トピックを絞りながら1つずつ説明していきます。

今回は、特に使用頻度が高く、Python の基本になる 組み込み型 について細かく説明していきます。ぜひこの記事は今後コーディングする際に、何度も参照してもらえたらうれしいです。

組み込み型について

Python組み込み型の種類は多く、ほとんどの型を頻度高く使用します。いきなりすべてを覚えていく必要はないので、1つずつどういった型であるかを理解してみてください。

数値型

数値型は整数(int)、浮動小数点数(float)、複素数(complex) の3種類と、ブール型と呼ばれる (True(1),False(0)) の整数のサブタイプがあります。
数値型では、四則演算や除算、剰余、べき乗などの計算ができます。

数値型の計算を行う際は、変数 (x, y などの値を代入する文字列) に数値を代入して計算しますが、Python は通常のプログラミング言語のように、変数の型を宣言する必要はありません。x = 10 とすれば、「x は数値型だな」と Pythonが自動認識してくれます。

サンプルコードはこんな感じです。

# 変数 x, y に値を代入
x = 10
y = 3

# 四則演算
print (x + y) # 13
print (x - y) # 7
print (x * y) # 30
print (x / y) # 3.3333333333333335

# 除算 (小数点以下は切り捨て)
print (x // y) # 3

# 剰余 (余り)
print (x % y) # 1

# べき乗
print (x ** y) # 1000

 

文字列

文字列は様々なメソッドがあります。いくつか覚えておいてくださいね。

変数に文字列を代入

まず文字列を定義するときは、シングルクオーテーション(‘) もしくは
ダブルクォーテーション (“) で囲います。以下のように文字列を変数に代入します。

d-quotation = "Double"
s-quotation = 'Single'

文字列の中に シングルクオーテーション(‘) ・ダブルクォーテーション (“) を使うこともできますが、その場合は、文字列全体がどちらで囲われているか注意が必要です。

例えば以下の場合は、ダブルクォーテーションの中でシングルクオーテーションを使っているので正しく認識されています。

good_str = "Hello! I'm Taka" 

しかし、シングルクオーテーション ” をシングルクオーテーション ‘ で囲ってしまうと

bad_str = 'Hello! I'm Taka'

‘Hello! I’ と m Taka’ に分かれていることがわかりますか?
このままでは、SyntaxError: invalid syntax となってしまいます。

正しく認識させるには、
バックスラッシュを文字列内に挿入して文字列であることを認識させます。

fixed_str = 'Hello! I\'m Taka'

これでOKです。これは逆(ダブルクォーテーション内に、ダブルクォーテーションを使う場合)も同じように対応してください。

複数行の文字列を代入する場合は、 “”” で囲います。

multiple_lines = """This is multiple
lines for test code!
Please Enjoy Python"""

 

文字列の連結

文字列同士の連携は + を使い、足し算のように連結できます。
※ 引き算などはできないのでご注意を。

first_str = "This is "
second_str = " string"
print(first_str + second_str) # This is string

 

文字列の分割

.split() を使うと文字列を特定の区切り文字で分割してリストを返すことができます。
分割はCSVファイルからデータをインポートして加工する際によく使われます。

# スペースで区切る
split_space = "One Two Three Four Five"
print(split_space.split()) # ['One', 'Two', 'Three', 'Four', 'Five']

# 読点(,)で区切る
split_comma = "This,is,split,test"
print(split_comma.split(",")) # ['This', 'is', 'split', 'test']

 

文字列の大文字・小文字変換

文字列をすべて大文字にするには .upper(), 小文字にするには .lower() を使います。
また、最初の文字を大文字、それ以外を小文字にするには .capitalize() を使います。

uppercase = "this is upper"
lowercase = "THIS IS LOWER"
print(uppercase.lower()) #THIS IS UPPER
print(lowercase.upper()) #this is lower
print(uppercase.capitalize()) #This Is Upper

 

文字列の置換

文字列を古い値から新しい値に置換する場合は、.replace() を使用します。

replace_str = "hello-to-replace"
print(replace_str.replace('-','/')) # hello/to/replace

 

文字列に値を埋め込む

文字列に値を埋め込む場合は、% を使用します。これは埋め込む値が動的な値(変化する値)の場合などに使われます。
埋め込む値が 文字列であれば %s, 整数であれば %d (%i), 浮動小数点数であれば %f という決まりがあります。

詳しくは Python 3.7.1 printf 形式での bytes の書式化 を参照してください。

name = "Taro"
points = 58.93
score = "name: %s, points: %f" % (name, points) 
print(score) # name: Taro, points: 58.930000

 

文字列のスライス

文字列の一部分だけを抜き出すことをスライスといいます。文字列を変数に代入すると、1文字ごとにインデックスという文字の順番を表すものが自動的に割り振られます。インデックスは 0 からスタートして、文字列の文字数に合わせて 0,1,2,…(x-1) 番目という風にインデックス化されています。

特定の文字列をスライスしたい場合は、string[(開始インデックス):(終了インデックス)] と表現します。文字列の 開始インデックス から 終了インデックスの1つ前 までを抜き出します。

slice_str = "check this is slice"

# 1 から 3 までをスライス
print(slice_str[1:4]) # hec

# 最初から 6 までをスライス
print(slice_str[:7]) # check t

# 5 から最後までをスライス
print(slice_str[5:]) #  this is slice

# 後ろから2番目以降をスライス
print(slice_str[-2:]) #  ce

 

文字列の削除

文字列を削除する場合は、.strip() (両端)を使います。
もし右端の削除であれば、.rstrip()、左端であれば .lstrip() を使います。

strip_str = "abe bebe aba"
# 両端の a を削除
print(strip_str.strip("a")) # be bebe ab

# 右端の a を削除
print(strip_str.rstrip("a")) # abe bebe ab

# 左端の a を削除
print(strip_str.lstrip("a")) # be bebe aba

 

文字列の検索

文字列の中で特定の文字列を検索する場合は、.find() もしくは in を使います。
.find() を使う場合、返り値はインデックスの番号であり、in を使うと True/False で返ってきます。

find_str = "Can you find Test for me?"
# 文字列から Test を探す
print(find_str.find("Test")) # 13
print("Test" in find_str) # True

 

※ 文字列に関してはまだまだありますが代表的なものを挙げました。
もっと知りたい方は、Python 3.7.1 文字列メソッド を参考にしてください。

More 組み込み型

数値と文字列の説明だけで、これだけ長くなってしまいました..
組み込み型には、その他にも、配列や分岐、ループがありますが、この記事内では収まり切れないので
次の記事である Python 標準ライブラリの組み込み型 (配列・分岐・ループ) を合わせてご参照ください。

それでは今回はここまで!