Python基礎文法チートシート[基礎文法最速マスター]
はじめに
ここではよく使う基本部分のみ紹介。
基本
式の終端には何も書かない(コロン「;」などは不要)
print("a")
コメント
# 一行コメント
"""
複数行コメント
"""
'''
複数行コメント
'''
スクリプトのインポート
Pythonでは、他のスクリプトファイルのことをモジュールと呼ぶ。
# システム関連の公式モジュール
import sys
print(sys.version)
# 複数のモジュールを一度に読み込む
import calender, copy
# モジュール内の特定オブジェクトのみ読み込む
from import date
スコープ
インデントで表現。基本は半角スペース4つ分だが、2つ分やタブの場合も。
セミコロン「:」が出てきたら字下げすると覚えておく。
def getSomething():
return 1
基本的にはひとつの処理を一行で書くが、改行することもできる。
# 行末にバックスラッシュを使う
## 日本語環境では円記号
getSomething() + 2\
+ 1\
+ 3
# 丸括弧で囲う
(getSomething() + 2
+ 1
+ 3)
変数
宣言の必要なし(即、代入可)
# グローバル変数:関数の外
abc = 1
def getSomething():
# ローカル変数
abc = 2
return abc
定数
定数は存在しない
慣用的にすべて大文字で書いておく
ABC = 2
関数
def getSomething(abc = 1):
return 1
getSomething(2)
ラムダ式(無名関数)
・引数の丸括弧がいらない
・すべて一行で書ける
・returnを省略可
lambda param1, param2: param1 + param2
リスト型(配列)
li = [1, 2, 3]
print(li[0])
ディクショナリ型(辞書型/連想配列)
dic = {"a" : 1, "b" : 2}
print(dic["a"])
dic["c"] = 3
# キーの削除
del dic["c"]
if文
if abc == 1:
bcd = 2;
elif abc == 2:
bcd = 3;
else:
bcd = 4;
switch文
switch abc:
case 1:
bcd = 2;
break;
case 2:
bcd = 3;
break;
default:
bcd = 4;
for文(ループ)
# 5回繰り返す
for count in range(5)
print(count)
# リスト
li = [5, 6, 7]
for value in li
print(value)
# ディクショナリ
dic = {"a" : 1, "b" : 2}
for key, value in dic.items
print(key, value)
型ヒント(型宣言/タイプヒンティング)
# 整数
abc:int = 1
# 浮動小数点
bcd:float = 2.1
# 文字列
cde:str = "aaa"
# リスト型
efg:list[int] = [2, 3]
# ディクショナリ型(辞書型)
fgh:dict[str, int] = {"abc" : 1}
def getSomething(a:int, b:str)->str:
return b
# 返り値がない場合はNone(void相当)
def doSomething()->None
return
型変換(キャスト)
int(value)
クラス
class Abc:
# クラス変数(静的メンバ変数)
index = 0
# コンストラクタ
## 最初の引数selfはそのクラスのインスタンス自身を示す。他の言語でいうthis
## 名前はなんでもいいが慣用的にselfを使う
def __init__(self, num:int):
# メンバ変数
self.mem:int = num
# アクセス制限はないのでprivateメンバには「__」をつける
self.__name = "aaa"
# インスタンスメソッド
# ここでも第1引数をselfとしておく
def doMyMethod(self)->int
return self.mem
# クラスメソッド(静的メソッド)
## デコレータで宣言
@classmethod
def doStaticMethod(cls, param:str)->int:
return cls.index + 1
# プロパティ
## デコレータで宣言
### getter
@property
def name(self)->str:
return self.__name
### setter
@property.setter
def name(self, value:str):
self.__name = value
# インスタンス化
## クラスのコンストラクタ/メソッドを呼び出す場合はselfを書かない
## newはいらない
ins = Abc(2)
ins.doMyMethod()
# 継承
class Bcd(Abc):
def __init__(self):
# 親クラスのコンストラクタ/メソッドを呼ぶ
super().__init__(1)
self.user = "aaa"