Python勉強記(3)- 全体像・基本データ型


うかうかしているうちに、Python3.12.4 がリリースされました。


Pythonは日々進化を続けています。まずは更新しましょう(上書きインストール=更新)
ここから「ですます調」は注釈を除きやめます。

Pythonの全体像

Pythonを勉強したいが、一体何をしたらいい?
まずは全体を知るために、公式リファレンスを見てみよう。

この中の「チュートリアル」を読み解いていくと、Pythonの全体像が少しずつ分かっていく。
ここでは基本的に「チュートリアル」のドキュメント順に進めることにする。

今のおっさん世代は、カーニハン&リッチーの「プログラミング言語C」(K&R本)をチュートリアルとして、C言語をマスターしていった。ここでも、同じスタイルでやっていく。

1.やる気を高めようは必読である。特におっさん世代は、最初にやる気を高めておきたい。

Pythonインタプリタ

実際に手を動かして確認するために、Pythonインタプリタ環境をPCに広げておこう。
最初に使ったGoogle Colab、先日インストールした公式Pythonインタープリタ、Jupyter Notebook、なんでも良い。以下、公式Python インタープリタのプロンプトの引用で進めていく。

インタプリタ(Interpreter:通訳)は、人間の言葉を入力し、コンピューターに理解してもらうためのものである。

コンピューター黎明期から発達してきたアセンブラ、コンパイラも人間語を機械語にするものだが、命令をファイルに羅列し、機械語に変換していた。

インタプリタは、人間とコンピュータ対話的にできるツールだ。コンパイラのようにファイルに命令を格納して一括実行することもできるし、1行ごとにOSコマンドのように命令を入力、実行させることもできる。

インタプリタのメリットは人間にとって優しいこと、デメリットは実行が遅いこと。
Pythonは人間に優しいことを追求し、速さは二の次にされている。その代わり、高速機械語で用意されたライブラリが豊富であり、Pythonはライブラリのグルー(glue:糊・接着剤)言語ともいわれる。

この「ライブラリを使いこなしてなんぼ」の姿勢と、Python自身の高水準さのバランスが、Python人気の秘訣なんだろうと思う。

(注)Google CorabやJupyter Notebookでは、マシンのCPythonとはべつのPython処理系(IPython) が内蔵されている。ライセンスを気にする必要はないが、バージョンの違いに気を付けたい。

基本データ型

文字列型

(注)基本データ型とは、ここでは文字列型と数値型を指します。

文字列(string)型は最初にやった”Hello,world”のようなデータ型である。
以下、Pythonインタプリタで1行ずつ打ち込んで表示を見ていく。

>>> "Hello,world"
'Hello,world'
>>>

最初はprint()関数で”Hello,world”を表示していたが、Pythonインタプリタの対話モードでは、表示するだけならprint()すら不要。ただプロンプトに入力すればよい。
なお、インタプリタモードでのエコーバック出力は、文字列はシングルクォートで囲まれて出力されるようだ。

(注)以下、予告なく簡単な変数演算子を使用しますが、説明は次回行います。

数値型

数値型は以下の種類のものがある。

  • 整数(integer):0, 1, -2 など ※ここでは十進整数のみ説明。

  • 浮動小数点数(float):実数のこと。1.0, 1.0e8(=1.0*10**8)

  • 複素数(complex) 1+2j など。

これらを使って、Pythonインタプリタを簡単な電卓としても使用してみる。
(注)説明のためインラインコメント(# 以降はコメント)も挿入していきます。

>>> 1  # 整数
1
>>> 1+1 # 整数の足し算
2
>>> 3.14 # 実数
3.14
>>> 10e2 # 実数(小さい10のべき乗)
1000.0
>>> 1e101 # 整数(大きい10のべき乗) 
1e+101
>>> 3/2 # 除算(int/int=float)
1.5 
>>> 3//2 # 整数の除算(int//int=int) 
1
>>> 1+2j # 複素数(complex) ※実部・虚部とも整数(ガウス整数)
(1+2j)
>>> 1.0+2j # この場合ガウス整数になる。
(1+2j)
>>> 1.1+2.2j  # 一般的な複素数
(1.1+2.2j)


それぞれの数はどんな型なのか、type()関数で調べられる・・・

>>> type("Hello")
<class 'str'>
>>> type(1)
<class 'int'>
>>> type(1+2.0)
<class 'float'>
>>> type(1e8)
<class 'float'>
>>> type(1+2j)
<class 'complex'>
>>> type(1.0+2.0j)
<class 'complex'>

やってみてわかったが、Pythonでは型名はクラス(文字列、数値はオブジェクト)だ。
正確にはtype()メソッドと言わなければならなかった。
Python  はバリバリのオブジェクト指向言語である。今はその事実だけ認識しておこう。

その他データ型(次回以降)

上記基本データ型を組み合わせて、配列(list)を始めとして豊富な組み込みデータがPython では使用できる。
長くなりそうなので次回以降に持ち越すことにする(とりあえず基本データ型はわかったから、Pythonのプログラムを書いてみることを優先するかもしれない
次回は説明してない型の紹介と、変数・(簡単な)関数についてやる予定です。

ここまで読んでくださった方々、本当にありがとうございます。

この記事が気に入ったらサポートをしてみませんか?