「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。目下、データ分析・語学に力点を置いています。今月(2022年10月)からは多忙につき、日々の投稿数を減らします。

MENU

Pythonをゆっくりていねいに学ぶ(その01/X)

 Pythonを真面目にゆっくり学ぶべく

を参考に学んでいきます*1

1. Pyの味

 \mathrm{Python}のみならず、プログラミング言語は料理のレシピなどと同様の構造を持つ:

  • 語彙が決まっている
  • 何をどこで言うかに関する決まりである構文規則がある
  • 実行すべきことが順番に並んでいる
  • 時折同じ作業の繰り返し(ループ)がある
  • 何らかの作業の参照(関数)が含まれる
  • 最低限の知識を前提とする
  • 期待される結果がある

1.1 Pythonは誰が使っている?

 \mathrm{Python}は1991年からあり、以下のようなコンピューティング環境で利用されている:

1.2 なぜPythonを使うべきなのか

 \mathrm{Python}は以下のような特徴を持つ汎用高水準言語である:

  • 可読性が高くなるように設計されており、そのため書きやすくもある
  • 比較的に簡潔な言語であるから、プログラムのサイズが小さくなる
  • 米国では多数の高等教育機関や企業にて既に採用されている
  • 無料かつ自由に利用できる
  • 標準ライブラリに役立つソフトウェアが満載である
  • \mathrm{Python}がさまざまな人に気に入られている


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

2.1 変数、名前、オブジェクト

 \mathrm{Python}ではすべてがオブジェクトとして実装されている(オブジェクト指向言語)。そのため\mathrm{Python}には他の言語にはないような一貫性と便利な機能がある。オブジェクトはデータを格納するプラスチック製の箱のようなもので、ブール値、整数などのデータ型を持つ
 型はオブジェクトに格納されているデータの値を変更できる(ミュータブル)なのか、変更できない(イミュータブル)のかも決める。
 プログラミング言語変数(コンピュータのメモリの中にある値を指す名前)を定義でき、\mathrm{Python}では=を用いて変数に値を代入する。
 \mathrm{Python}では変数はただの名前であり、代入したからといって値はコピーされない。オブジェクトに名前を付けるのみで、代入したからといって値はコピーされず、名前は参照しているに過ぎない

a = 7
print(a)

b = a
print(b)

a = 8
print(b)

2.1.1 データ型を調べたい

 \mathrm{Python}でデータ型が知りたいときには\mathrm{type}()関数を用いる。

a = 7
print(type(a))

b = a
print(type(b))

print(type(58))


print(type(99.9))

print(type('abc'))


 クラスはオブジェクトの定義を指し、\mathrm{Python}ではクラスと型は全くもって同じものを指す。

2.1.2 変数名のルール

 変数名には以下のみが利用できる:

  小文字の英字
  大文字の英字
  数字(0から9まで)
  アンダースコア(_)

数字を名前の先頭には利用できない。アンダースコアを先頭に使うと特殊な意味合いで解釈されるため、注意する。
 また以下は予約語であるため、変数名には利用できない。

  \mathrm{False} \mathrm{class} \mathrm{finally} \mathrm{is} \mathrm{return}
  \mathrm{None} \mathrm{continue} \mathrm{for} \mathrm{lambda} \mathrm{try}
  \mathrm{True} \mathrm{def} \mathrm{from} \mathrm{nonlocal} \mathrm{while}
  \mathrm{and} \mathrm{del} \mathrm{global} \mathrm{not} \mathrm{with}
  \mathrm{as} \mathrm{elif} \mathrm{if} \mathrm{or} \mathrm{yield}
  \mathrm{assert} \mathrm{else} \mathrm{import} \mathrm{pass}
  \mathrm{break} \mathrm{except} \mathrm{in} \mathrm{raise}

2.2 数値

 \mathrm{Python}には整数と浮動小数点数のサポートが組み込まれている。

 
意味
結果
  + 加算 5+8 13
  - 減算 90-10 80
  * 乗算 4*7 28
  / 浮動小数点数の除算 7/2 3.5
  // 整数の除算(切り捨て) 7//2 3
  \% 剰余 7\%3 1
  \mathrm{divmod(a,b)} 除算と剰余 \mathrm{divmod}(7,3) (2,1)
  // 指数 3**4 81


 個々の数値と演算子の間にスペースを入れる必要性はないものの、読みやすさのために入れることができる


 算術演算子=の前に追加する形で代入と組み合わせることができる。

a = 95
a -=3
print(a)

a = 95
a = a - 3
print(a)


 算術演算子には優先順位が予め定義されている一方で、括弧書き()で優先順位を明示化した方が可読性が向上する。


 整数はプレフィクスで特に基数を指定しない限り基数10(10進法)と見なされる。\mathrm{Python}では10進法以外でも3種類の基数を使ってリテラル整数を表すことができる。

  • \mathrm{0b}または\mathrm{0B}は2進法
  • \mathrm{0o}または\mathrm{0O}は8進法
  • \mathrm{0x}または\mathrm{0X}は16進法
2.2.1 型の変換

 \mathrm{Python}の整数以外のデータ型を整数に変換するには\mathrm{int}()関数を用いる。

################
### 型の変換 ###
################

### 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)
2.2.2 浮動小数点数

 浮動小数点数は整数と同じように扱われ、算術演算子\mathrm{divmod}()関数を利用できる。
 他のデータ型を浮動小数点数に変換するには\mathrm{float}()関数を用いる。

*1:第2版が出ているものの初版しか持っていないのでこちらで。

プライバシーポリシー お問い合わせ