Pythonを真面目にゆっくり学ぶべく
を参考に学んでいきます*1。
1. Pyの味
のみならず、プログラミング言語は料理のレシピなどと同様の構造を持つ:
- 語彙が決まっている
- 何をどこで言うかに関する決まりである構文規則がある
- 実行すべきことが順番に並んでいる
- 時折同じ作業の繰り返し(ループ)がある
- 何らかの作業の参照(関数)が含まれる
- 最低限の知識を前提とする
- 期待される結果がある
2. Pyの成分:数値、文字列、変数
2.1 変数、名前、オブジェクト
ではすべてがオブジェクトとして実装されている(オブジェクト指向言語)。そのためには他の言語にはないような一貫性と便利な機能がある。オブジェクトはデータを格納するプラスチック製の箱のようなもので、ブール値、整数などのデータ型を持つ。
型はオブジェクトに格納されているデータの値を変更できる(ミュータブル)なのか、変更できない(イミュータブル)のかも決める。
プログラミング言語は変数(コンピュータのメモリの中にある値を指す名前)を定義でき、ではを用いて変数に値を代入する。
では変数はただの名前であり、代入したからといって値はコピーされない。オブジェクトに名前を付けるのみで、代入したからといって値はコピーされず、名前は参照しているに過ぎない。
a = 7 print(a) b = a print(b) a = 8 print(b)
2.1.1 データ型を調べたい
でデータ型が知りたいときには関数を用いる。
a = 7 print(type(a)) b = a print(type(b)) print(type(58)) print(type(99.9)) print(type('abc'))
クラスはオブジェクトの定義を指し、ではクラスと型は全くもって同じものを指す。
2.1.2 変数名のルール
変数名には以下のみが利用できる:
小文字の英字 | |
大文字の英字 | |
数字(0から9まで) | |
アンダースコア(_) |
数字を名前の先頭には利用できない。アンダースコアを先頭に使うと特殊な意味合いで解釈されるため、注意する。
また以下は予約語であるため、変数名には利用できない。
2.2 数値
には整数と浮動小数点数のサポートが組み込まれている。
意味 |
例 |
結果 |
||
---|---|---|---|---|
加算 | ||||
減算 | ||||
乗算 | ||||
浮動小数点数の除算 | ||||
整数の除算(切り捨て) | ||||
剰余 | ||||
除算と剰余 | ||||
指数 |
個々の数値と演算子の間にスペースを入れる必要性はないものの、読みやすさのために入れることができる。
算術演算子はの前に追加する形で代入と組み合わせることができる。
a = 95 a -=3 print(a) a = 95 a = a - 3 print(a)
算術演算子には優先順位が予め定義されている一方で、括弧書き()で優先順位を明示化した方が可読性が向上する。
整数はプレフィクスで特に基数を指定しない限り基数10(10進法)と見なされる。では10進法以外でも3種類の基数を使ってリテラル整数を表すことができる。
- またはは2進法
- またはは8進法
- またはは16進法
2.2.1 型の変換
の整数以外のデータ型を整数に変換するには()関数を用いる。
################ ### 型の変換 ### ################ ### int() ## bool型の変換 print(int(True)) print(int(False)) ## float型の変換:小数点以下を切り捨て print(int(9.8)) print(int(1.0e4)) ## +,-または整数のみで作られたcharacter型の変換 print(int(-98)) print(int(44)) print(int(+2)) ## それ以外はエラーを起こす # print(int('character')) # print(int('9.8')) ### 型の自動変換 print(4 + 7.0) # int型がfloat型に変わる print(False + 5.0)
*1:第2版が出ているものの初版しか持っていないのでこちらで。