🐍
精読「独習Python」(Pythonの基本)
独習Python
「独習Python」は、初心者から中級者までを対象に、Pythonの基礎から応用までを体系的に学べる入門書で、豊富な例題と練習問題を通じて実践的なスキルを身につけられる一冊です。
関連記事
変数
変数の宣言
- 変数に初めて値を格納したタイミングで、変数のための領域が自動的にメモリ上に確保される(変数の宣言)
name = "山田" # ”変数の宣言”と”代入”
print(name) # 変数の”参照”
識別子の命名規則
- 識別子[1]の命名規則を知っておく
命名規則
ルール | 説明 |
---|---|
英文字、数字、アンダースコアのみ使用可能 | アルファベットまたはアンダースコアで始める必要があります。数字で始めることはできません。 |
大文字と小文字を区別する | 例: myVar と myvar は別の識別子として扱われる |
予約語は使用不可 | 例: if , else , class などのPythonキーワードは使えない |
特殊文字は使用不可 | 記号(例: @ , $ , % など)は使用できない |
長さの制限なし | ただし、可読性を考慮することが推奨 |
よりよい識別子のためのルール
- コードを読みやすくするために識別子のルールを設ける
よりよい識別子のためのルール
ルール | 例 |
---|---|
名前からデータの内容を類推できる | ◯: score , birth ✕: m ,n
|
長すぎない、短すぎない | ◯: paassword , name ✕: pw , real_name_handle_name
|
ローマ字での命名を避ける | ◯: name , age ✕: namae , nenrei
|
見た目に紛らわしくない | △: tel /Tel . user /usr
|
記法を統一する |
mainAddress /main_address /MailAddress
|
戦闘のアンダースコア(_)には意味があるので、普通の識別子には使わない | ◯: price ✕: _price
|
また、識別子の記法には、以下のようなものがある
記法 | 説明 | 例 |
---|---|---|
キャメルケース | 最初の単語は小文字、以降の単語の先頭を大文字にする(主に一部のスタイルで使用) | userName |
パスカルケース | 各単語の先頭を大文字にし、単語を連結(クラス名に使用) | UserName |
アンダースコア記法 | 特殊な意味を持たせるためにアンダースコアを使用。以下の種類があります: |
user_name , USER_NAME
|
変数の破棄
- del命令で変数の破棄もできる
name = "山田"
del name # 変数を"破棄"
定数
- pythonには定数[2]という仕組みはないが、紳士協定としての定数を使う
price = 100
TAX_RATE = 1.1 # 定数(大文字にして一般的な変数と区別)
print(price * TAX_RATE)
データ型
- JavaやC#のようなデータ型を強く意識する言語は、静的型付け言語と呼ばれる
- Pythonのようなデータ型に対して寛容な言語は、動的型付け言語と呼ばれる
data = "りんご" # 最初に文字列を格納した変数に、
data = 100 # あとから数値をセットしてもOK
データ型の分類
- Pythonの主な組み込み型[3]
分類 | 型 | 概要 | 変更可能 | 反復可能 | 順序 |
---|---|---|---|---|---|
数値 | int |
整数型 | × | × | × |
float |
浮動小数点型 | × | × | × | |
complex |
複素数型 | × | × | × | |
データ | str |
文字列型 | × | ○ | ○ |
bytes |
バイナリデータ | × | ○ | ○ | |
コンテナー | list |
順序を持つリスト | ○ | ○ | ○ |
tuple |
順序を持つリスト(変更不可) | × | ○ | ○ | |
dict |
キー/値の辞書 | ○ | ○ | × | |
set |
順序を持たない値の集合 | ○ | ○ | × | |
その他 | bool |
論理型(True, または False) | × | × | × |
NoneType |
値がない | × | × | × |
論理型(bool)
-
True
/False
のいずれかの状態しか持たない
整数型(int)
- 私達が普段使っている10進数リテラル[4]の他にも、16進数、8進数、2進数も表現できる
浮動小数点型(float)
-
小数点数だけでなく、指数表現[5]がある
<仮数部>×10の<符号><指数部>で、本来の小数値に変換できる
a = 1.23e4 # 1.23 × 10^4 = 12300.0
b = 5.67e-3 # 5.67 × 10^-3 = 0.00567
数値セパレーター
- Python3.6以降では、桁数の大きな数値の可読性を改善するために、数値リテラルの中に桁区切り文字(_) を記述できるようになった(数値セパレーター)
a = 1_000_000 # あくまで人間の可読性を助けるためなので、
print(a) # 1000000が出力される
文字列型(str)
-
エスケープシーケンス:改行(
\n
)/タブ文字(\t
)など特別な意味を持つ文字 - 複数行文字列:シングルクォート3つ、もしくはダブルクォート3つで複数行の文字列を表現できる
print('''Hello,
World!''') # 出力:Hello,(改行)World!
-
raw文字列:
\xx
をエスケープシーケンスとみなさず、表記のままに解釈する文字列リテラル
# 通常の文字列
normal_string = "C:\\Users\\UserName\\Documents"
# raw文字列
raw_string = r"C:\Users\UserName\Documents"
print(normal_string) # C:\Users\UserName\Documents
print(raw_string) # C:\Users\UserName\Documents
-
フォーマット文字列:Python3.6以降では、文字列リテラルの先頭に「
f
」または「F
」を付けることで、文字列中に{…}
の形式で変数を埋め込める(フォーマット文字列)
name = "Alice"
print(f"My name is {name}.") # 出力: My name is Alice.
リスト(list)
- 複数の値を収めることができる仕切りのある入れ物
- 要素[6]のそれぞれには番号が振られ、互いを識別できる(他の言語では、配列と呼ばれる)
- ブラケット(
[…]
)でくくられた部分は、インデックス番号(または添え字)と呼ばれる
fruits = ["apple", "banana", "cherry"]
# 1番目の要素を取得
print(fruits[0]) # 出力: apple
# 最後の要素を取得
print(fruits[-1]) # 出力: cherry
- 最後の要素のカンマ:リストを複数行で表す場合は、最後のカンマを付与した方が読みやすくて良い[7]
my_list = [
"apple",
"banana",
"cherry", # 最後の要素にカンマを付ける
]
- 入れ子のリスト:リストそのものも要素として格納できる(多次元リスト)
boxes = [
["red ball", "blue ball", "green ball"], # 1番目の箱
["yellow ball", "pink ball", "white ball"], # 2番目の箱
["black ball", "orange ball", "purple ball"], # 3番目の箱
]
print(boxes[1][0]) # 出力: yellow ball
- ジャグ配列的:2時限目以降の要素数が不揃いなリストも定義できる(言語によってはジャグ配列と呼ぶ)
jagged_array = [
[1, 2, 3],
[4, 5], # 要素数が違ってもOK
]
Discussion