はじめに
Python以外のプログラミング言語を習得しているエンジニア向けのチートシートです。
最低限必要なことをまとめています。
これを見れば、Pythonの簡単なコードの読み書きができるはず!
※随時更新していきます。
コメント
# コメント
- 「#」から行末までがコメント
変数と定数
hoge = "変数" # 変数
FUGA = "定数" # 定数(※)
- 変数名は「文字」「数字」「アンダースコア記号」のいずれかで構成する必要がある
- 1文字目に「数字」は使用できない
※ Pythonでは言語仕様として定数がサポートされていないため、慣習として英大文字のみで構成した変数を定数としている。
データ型
type("ほげ") # <class 'str'> 文字列
type(123) # <class 'int'> 整数
type(12.3) # <class 'float'> 浮動小数点数
type(True) # <class 'bool'> 真偽値
type(None) # <class 'NoneType'> None
演算子
算術演算子
1 + 2 # 3 加算
2 - 1 # 1 減算
2 * 3 # 6 乗算
7 / 2 # 3.5 除算
7 % 2 # 1 剰余
7 // 2 # 3 除算(切り捨て)
2 ** 3 # 8 累乗
比較演算子
10 > 1 # True より大きい
10 < 1 # False より小さい
5 >= 5 # True 以上
5 <= 5 # True 以下
3 == 3 # True 等価
3 != 3 # False 不等価
Pythonには、所謂「暗黙の型変換」が存在しないため、1 == "1"
はFalse
になる。
論理演算子
True and True # True かつ
True or False # True または
not True # False 否定
文
# 単純文
print("Hello World!")
# >> Hello World!
# 複合文
for i in range(10): # ヘッダー
print("Hello ", end="") # スイート
print("World!") # スイート
# >> Hello World!
- 単純文は1行のコード
- 複合文は1つ以上の「節」で構成される
- 1つの「節」は「1行のヘッダー」と「1行以上のスイート」で構成される
- 「ヘッダー」はキーワードを含む1行のコード
- 「ヘッダー」の行末には「:(コロン)」を置く
- 「スイート」は「ヘッダー」に続く、インデントされた1行以上のコード
- コードブロックはインデントを揃えることで表す
条件文
hoge = "ほげ"
if hoge == "ほげ":
print("「ほげ」です")
elif hoge == "ふが":
print("「ふが」です")
else:
print("「ほげ」でも「ふが」でもないです")
# >> 「ほげ」です
関数
def hello_say(lang):
print("Hello " + lang)
print(hello_say("Python"))
# >> Hello Python
# >> None
- 慣習として、関数名は英小文字のみのスネークケース
- 関数にreturnが無い場合、その関数はNoneを返す
- 関数の巻き上げ(ホイスティング)は無いので、関数呼び出しの前に関数定義が必要
キーワード引数
def func_keyword(lang, ver):
print(lang + ver)
func_keyword(ver = "3", lang = "Python")
# >> Python3
- 関数呼び出し時に対応する仮引数の名前を指定すれば、関数定義の引数の順序は自由
オプション引数
def func_exec(arg, opt_arg = "ふが"):
print("「" + arg + "」は必須引数です")
print("「" + opt_arg + "」はオプション引数です")
return "実行完了"
result = func_exec("ほげ")
print(result)
# >> 「ほげ」は必須引数です
# >> 「ふが」はオプション引数です
# >> 実行完了
- 引数にデフォルト値を設定すると、その引数はオプション引数となる
- オプション引数の後に、必須引数を定義することはきない
可変長引数(タプル)
def func_args(*args):
for arg in args:
print(arg)
return "実行完了"
print(func_args("ほげ", "ふが"))
# >> ほげ
# >> ふが
# >> 実行完了
- 関数定義の仮引数の先頭に「*」を付けると、実引数をタプルとして受け取ることが出来る
可変長引数(辞書)
def func_kwargs(**kwargs):
for key in kwargs:
print(kwargs[key])
func_kwargs({"lang": "Python"})
# >> Python
- 関数定義の仮引数の先頭に「**」を付けると、実引数を辞書として受け取ることが出来る
スコープ
hoge = "グローバル" # グローバル変数
def func_exec():
global hoge
hoge = "ぐろーばる"
fuga = "ローカル" # ローカル変数
print(fuga)
func_exec()
# >> ローカル
print(hoge)
# >> ぐろーばる
定義位置 | アクセス | スコープ | |
---|---|---|---|
グローバル変数 | 関数やクラスの外部 | プログラムのどこからでも読み書き可 | グローバルスコープ |
ローカル変数 | 関数やクラスの内部 | 定義された関数やクラス内でのみ読み書き可 | ローカルスコープ |
- ローカルスコープの中からグローバル変数の値を変更する場合は、「global」キーワードを使用する
コンテナ
# リスト
my_list = list()
my_list = []
my_list = ["Apple", "Orange", "Grape"]
print(my_list[1])
# >> Orange
# タプル
my_tuple = tuple()
my_tuple = ()
my_tuple = ("first", "second", "third")
print(my_tuple[0])
# >> first
# 辞書
my_dict = dict()
my_dict = {}
my_dict = {"Apple": "Red", "Banana": "Yellow"}
print(my_dict["Apple"])
# >> Red
イテラブル(繰り返し可能) | ミュータブル(変更可能) | |
---|---|---|
リスト | ○ | ○ |
タプル | ○ | ×(イミュータブル) |
辞書 | △(順序は保証されない) | ○ |
- リスト、タプルのインデックスは「0」から始まる
- コンテナの中にコンテナを格納可能
ループ
for i in range(3): # inの後にイテラブルなオブジェクト
print(i)
# >> 0
# >> 1
# >> 2
i = 0
while i < 5:
i += 1
if i == 2:
continue
elif i == 4:
break
print(i)
# >> 1
# >> 3
例外処理
try:
print(2 / 0)
except ZeroDivisionError:
print("0除算が発生したよ")
except:
print("よく分からないエラーだよ")
# >> 0除算が発生したよ
tryブロック内で例外が発生すると、例外の種類に応じたexceptブロックが実行される。
オブジェクト指向編も書きました!
【Python3】他言語エンジニアのためのPythonチートシート《オブジェクト指向編》