データ型#

Pythonでは、変数を使用してデータを格納します。

各変数は特定のデータ型を持ち、これによって整数、文字列などの異なる種類のデータを扱うことができます。

演算子#

演算子を使用して変数に格納されたデータを操作します。算術演算子による計算、比較演算子による条件判定、論理演算子による複合的な条件式の作成など、プログラムのほとんどすべての動作に演算子が関わっています。

同じ演算子が異なるデータ型に適用されるとき異なる操作になることがあります。

算術演算子#

+a            # 正数
-a            # 負数
a + b         # 加算
a - b         # 減算
a * b         # 乗算
a / b         # 除算
a % b         # a を b で割った余り
a ** b        # a の b 乗
a // b        # 切り捨て除算

代入演算子#

a = b         # a に b を代入する
a += b        # a = a + b に同じ
a -= b        # a = a - b に同じ
a *= b        # a = a * b に同じ
a /= b        # a = a / b に同じ
a %= b        # a = a % b に同じ
a **= b       # a = a ** b に同じ
a //= b       # a = a // b に同じ
a &= b        # a = a & b に同じ
a |= b        # a = a | b に同じ
a ^= b        # a = a ^ b に同じ
a <<= b       # a = a << b に同じ
a >>= b       # a = a >> b に同じ

比較演算子#

a == b           # a が b と等しい
a != b           # a が b と異なる
a < b            # a が b よりも小さい
a > b            # a が b よりも大きい
a <= b           # a が b 以下である
a >= b           # a が b 以上である
a is b           # a が b と等しい
a is not b       # a が b と異なる
a in b           # a が b に含まれる (a, b は共に文字列、または、b はリストやタプル)
a not in b       # a が b に含まれない (a, b は共に文字列、または、b はリストやタプル)

ブール演算子#

a and b         # a も b も真であれば真
a or b          # a または b が真であれば真
not a           # a が偽であれば真

条件演算#

x if c else y

文字列演算#

a + b         # 文字列 a と 文字列 b を連結します
a * n         # 文字列 a を n 回繰り返します
a[n]          # 文字列 a の中の n 番目の文字を取り出します
a[n:m]        # 文字列 a の中の n 番目から m 番目までの文字列を取り出します
a[n:]         # 文字列 a の中の n 番目から最後までの文字列を取り出します
a[:m]         # 文字列 a の中の 0 番目から m 番目までの文字列を取り出します
a[n:m:s]      # 文字列 a の中の n 番目から m 番目までの文字列を s個とばしで取り出します

基本的なデータ型#

ブール値#

ブール値(bool型)は、プログラム内で真Trueまたは偽Falseのいずれかを表すデータ型です。条件式論理演算でよく使われます。

論理演算#

論理演算子(and, or, not)を使って、ブール値を操作します。

True and False
False
True or False
True

比較演算#

5 > 3
True
7 != 7
False

条件文#

if True:
  print("This will always execute")
This will always execute

Note

関数の詳細については今後の授業で学びますので、さしあたり今は、関数に引数を渡すと、その値に応じた何らかの処理結果を返すということを知っておけば良いです。

ブール値の変換#

Pythonでは、ほとんどのデータ型をbool型に変換することが可能です。

組込み関数bool() は、オブジェクトや演算式等を真理値判定に基づいて、任意のPythonデータ型をboolに変換できます。

  • \(0\)ではない数値はTrueと見されます。

bool(10)
True
  • \(0\)Falseと見されます。

bool(0)
False

整数(int)#

整数は、小数点以下がなく数値です。

123
123
-123
-123

大きな数値のセパレータとしてアンダースコア(_)を使えます。

1_000_000
1000000

Pythonでは数値の計算もできます。数学演算子は表のように定義されています。

演算の優先順位は通常の数学と同様に定義されています。通常の数学と同様に、()を使えば、演算の順番を決めることもできます。

演算子演算
+加算a + b
-減算a - b
*乗算a * b
/除算a / b
%剰余a % b
//切り捨て除算a // b
**べき乗a ** b

少し馴染みのない演算子のは、

  • 演算子 // は小数部を切り捨てた整数値(商)を返します。

  • 演算子 %は整数除算の余り(剰余)を返します。

13//5
2
13%5
3

浮動小数点数 (float)#

Pythonでは、整数と小数点のある数(実数)は浮動小数点数といいます。

5.
5.0
5.0
5.0

浮動小数点数は文字eの後ろに\(10\)進の桁数を入れて指定することもできます。

5e2
500.0

ここで注意する必要があるのは、整数と実数が数学的に同じ数を表す場合でも、コンピュータの中で異なる形式で記憶されますので、表示は異なります。

print(type(5.0))
print(type(5))
<class 'float'>
<class 'int'>

浮動小数点数も算術演算子を使えます。

また、整数と実数が混ざって計算も可能です。ただ、その場合、結果は実数になります。

2+5.0
7.0

int()関数で、浮動小数点数を整数に変換できます。

int(98.5)
98

float()関数で、整数を浮動小数点数に変換できます。

float(98)
98.0

一日は何秒だを計算してみよう。

\(1\)\(365\)日といいますが、厳密的に言えば、\(1\)年を\(366\)日とする閏年を\(400\)年間に\(97\)回設けることによって、\(1\)年の平均日数を\(365.2425\)日とする。

今度は一年は何分何秒かを計算しよう。一年\(=()\)\(()\)秒で回答してください。

文字列#

文字列は数値とは異なるデータ型の一つで、文字通り文字を扱います。

文字列作成#

文字列は、シーケンス型という広義の型に属しています。シーケンス型とは順番のある要素の集まりを指します。インデックスで要素を指定して取り出すことができます。インデックスは\(R\)などとは違い、\(1\)ではなく、\(0\)から始まります。例えば、

  • 0:3とすると、\(0\)から\(2\)までの要素を取り出します。

  • 1:とすると\(1\)以降のすべての要素を取り出します。

文字列は、 クォートで文字を囲んで作ります。

text="Hello!"
print(text)
Hello!
text='Hello!'
print(text)
Hello!
'"ダブル" クォートを埋め込むことができます'
'"ダブル" クォートを埋め込むことができます'
"'シングル' クォートを埋め込むことができます"
"'シングル' クォートを埋め込むことができます"
'''三つのシングルクォート'''
'三つのシングルクォート'
text='Hello!'

特定の文字の前にバックスラッシュをつけると、その文字を特殊な意味として扱うことができます。もっともよく使われるのは改行を意味する\nです。

print("Hello\nWorld")
Hello
World

\(+\)による連結#

"Hello"+"World"
'HelloWorld'

\(*\)による繰り返し#

"Hello"*3
'HelloHelloHello'

[]による文字の抽出#

文字列から文字を取り出したい時には、\([]\)にインデックスを指定するとその位置の文字を取得できます。

  • 先頭の文字は\(0\)から数えます。

  • 一番最後の文字が\(-1\)でも指定できます。後ろから二番目は\(-2\),後ろから三番目は\(-3\)のように表すことができます。

name="Max Weber"
name[0]
'M'
name[-1]
'r'
name[:3]
'Max'
name[-5:]
'Weber'

lenによる文字の長さを取得する#

Pythonの取り組み関数で文字列に対する操作を行うことができます。

len(name)
9

splitによる文字の分割#

split関数は、区切り文字に基づいて文字列を分割し、部分文字列のリストを作ることができます。

name.split(" ")
['Max', 'Weber']

replaceによる文字の置換#

replace関数は、文字列の一部を置換することができます。

name.replace("Max","Karl").replace("Weber","Marx")
'Karl Marx'