Python

入門Python3

入門Python3で学んだことをまとめる

1章

Pythonは動的言語(スクリプト言語)

変数の型を宣言しない
コンパイルの必要無し
インタプリタ(解釈するもの)によってプログラムが解釈される
標準PythonインタプリタはCで書かれている
Perlも動的言語

Java、C、C++は静的言語

個々の変数の型を宣言し、実行する前にコンパイルをする必要がある。
なぜ静的言語と言われているかは、言語の変数が型を変えることができないため。

Python2と3の違い

はっきりとした違いはprintの呼び出し
重要な変更はUnicode文字の処理方法

ターミナルで pythonとコマンドすると、対話型インタプリタが起動する

コマンドを打つと結果が表示される

2章

Pythonでは全て(ブール値、整数、文字列、関数、プログラム)がオブジェクトとして実装されている

オブジェクトはデータを入れてある透明なプラスチックボックスのようなもの

変数はただの箱

データを入れているオブジェクトに名前をつけるだけ
a=7といった場合、aというポストイットをつけた箱に7を入れるようなイメージ
型を調べたい時は、type(変数・リテラル値)

整数

/ は浮動小数点数除算をする
//は整数(切り捨て)除算をする

優先順位

乗算の方が加算より優先順位が高い
2 + 3 * 4 > 14
グループ化して見やすくした方が親切
2 + (3 * 4) > 14

基数

10進数以外に3種類の基数を使ってリテラル整数を表すことができる
0b or 0B → 2進数
0o or 0O → 8進数
0x or 0X → 16進数

型の変換

整数に変換する場合 int() を使う
int(True) > 1
int(False) > 0

int

Python3からlongがなくなり、intは任意のサイズ、64ビットより大きな数値を表現できるようになった

文字列

文字列はシングルクウォートかダブルクウォートで文字を囲う
2種類のクウォート文字を使えるようにしたのは、クウォート文字を含む文字列を作れるようにするため
トリプルクウォートは、複数行文字列を作るときに使用される
poem = '''There was a letter,
... AAAAA
... BBBBB
... CCCCC
... This is a pen.'''

str()を使った型変換

str()を使えば、他のデータ型を文字列に変換できる

\ はエスケープ文字

\nは 改行
\tは タブ

*による繰り返し

start = 'Na' * 4 > Na Na Na Na

[]による文字の抽出

letters = 'abcdefghijk'
letters[0] > a
letters[-1] > k

split()による分割

セパレータに基づき文字列を分割して、文字列のリストを作成する

join()による結合

文字列のリストを一つの文字列に結合する

3章

Pythonには文字列以外にタプルとリストの二種類のシーケンス構造がある。タプルはイミュータブル、リストはミュータブル。

シーケンス構造とは

順序のある要素の集まりを持った構造を指す

タプル

イミュータブル

リスト

ミュータブル
一意な値を管理できれば順番はどうでもいいという場合は、リストではなく集合を使うべき。

list() 他のデータ型からリストへの変換

list('cat') > ['c', 'a', 't']

sort()による要素の並べ替え

リスト関数のsort()はその場でリスト自体をソートする。数値の場合は昇順、文字の場合はアルファベット順
sorted()はソートされたリストのコピーを返す

len()は長さを取得する

リスト内の要素数を返す

=による代入とcopy()によるコピー

  • =による代入の場合、データの入っているオブジェクトに名前をつけているだけなので、名前は値自体ではなく値の参照である。
  • copy()関数でコピーした場合、オブジェクトをコピーしているので、片方の値を書き換えても、もう一方には反映され無い。

タプル

リストど同様に任意の要素を集めたシーケンス。リストとは異なり、イミュータブルなので要素の追加や削除ができない。
タプルを使うメリット
- 消費スペースが少ない
- 誤まって要素を書き換える心配がない
- 辞書のキーとして使える

辞書

keyに結びつくvalueをリストとして保存できるオブジェクト。ミュータブルなので、値の追加、削除等が可能。