Skip to content

2章 Pyの成分:数値、文字列、変数

この章では、Pythonのもっとも単純な組み込みデータ型であるブール値、整数、浮動小数点数、文字列と、それらを指し示す「変数」について学びます。

Pythonでは、データ構造や関数など、すべてが「オブジェクト」として実装されています。

  • オブジェクトの性質: オブジェクトには型(intなど)があり、そのデータで何ができるかが決まります。また、値を変更できるか(ミュータブル)、できないか(イミュータブル)も型によって決まります。
  • 変数はただの「名前」: Pythonの変数は値そのものを格納する箱ではなく、オブジェクトに貼り付ける「付箋(ラベル)」のようなものです。
# aという名札を「7」というオブジェクトに貼る
a = 7
# bという名札も、同じ「7」のオブジェクトに貼る
b = a
# 型を確認するには type() を使う
print(type(a)) # <class 'int'>

Pythonには、整数(int)と浮動小数点数(float)のサポートが組み込まれています。

一般的な四則演算に加え、Python特有の便利な演算子があります。

  • / は浮動小数点数の除算を行います。
  • // は切り捨ての整数除算を行います。
  • divmod() を使うと、商と剰余(余り)を同時にタプルとして取得できます。
print(9 / 5) # 1.8 (浮動小数点数)
print(9 // 5) # 1 (整数の切り捨て除算)
print(9 % 5) # 4 (剰余)
print(divmod(9, 5)) # (1, 4)
  • 基数: 2進数は 0b、8進数は 0o、16進数は 0x を先頭に付けます。
  • 型の変換: int()float() を使って他の型から変換できます。
print(0b10) # 2進数の2
print(0x10) # 16進数の16
print(int(98.6)) # 98 (小数部は切り捨てられる)
print(float('98.6')) # 98.6

Pythonの文字列は、文字のシーケンスであり、**イミュータブル(書き換え不可)**です。

文字列の作成と連結・繰り返し

Section titled “文字列の作成と連結・繰り返し”
  • シングルクォート(')またはダブルクォート(")で作ります。
  • 3個のクォート(''' または """)を使うと、改行を含む複数行の文字列を作成できます。
  • + で連結し、* で繰り返します。
start = 'Na ' * 4
end = 'Batman!'
print(start + end) # Na Na Na Na Batman!
  • [オフセット] で1文字を抽出します(先頭は0、末尾は-1)。
  • [start:end:step] で部分文字列(スライス)を抽出します。
letters = 'abcdefghijklmnopqrstuvwxyz'
print(letters[0]) # a (先頭)
print(letters[-1]) # z (末尾)
print(letters[12:15]) # mno (オフセット12から14まで)
print(letters[::-1]) # zyx...cba (ステップに-1を指定すると逆順になる)

文字列操作には多数の便利な関数(メソッド)が用意されています。

  • len(): 文字数を取得します。
  • split(): セパレータで分割してリスト化します。
  • join(): リストを文字列として結合します。
  • replace(): 部分文字列を置換します。
  • 大文字・小文字の操作: capitalize(), upper(), lower(), swapcase() などが用意されています。
# 分割と結合
todos = 'get gloves, get mask'
todo_list = todos.split(', ') # ['get gloves', 'get mask']
print(' & '.join(todo_list)) # get gloves & get mask
# 置換と文字変換
setup = 'a duck goes into a bar...'
print(setup.replace('duck', 'marmoset')) # a marmoset goes into a bar...
print(setup.upper()) # A DUCK GOES INTO A BAR...