Python 3 簡易基本チートシート(下書き)
Python 3 簡易基本チートシート(下書き)
Python 3.6.5
Python 3 学習情報
Python>>> About>>> Getting Started
https://www.python.org/about/gettingstarted/
The Python Tutorial 3.6.5
https://docs.python.org/3.6/tutorial/index.html#the-python-tutorial
Python チュートリアル 3.6.5
https://docs.python.jp/3/tutorial/index.html
Python 3.6.5 documentation
https://docs.python.org/3/index.html
Python 3.6.5 ドキュメント
https://docs.python.jp/3/index.html
Dive Into Python 3
http://www.diveintopython3.net/
Dive Into Python 3 日本語版
http://diveintopython3-ja.rdy.jp/
(書籍)詳細!Python3入門ノート
https://honto.jp/netstore/pd-book_28495507.html
(学習サイト)【世界で5万人が受講】実践 Python データサイエンス | Udemy
https://www.udemy.com/python-jp/learn/v4/
(学習サイト)Python入門 | 10秒で始めるAIプログラミング学習サービスAidemy[アイデミー]
https://aidemy.net/courses/3010
基本
ステートメント(命令文)の区切りは 改行 もしくは ; (セミコロン) インデントは4文字スペースが標準。
プリント(画面に出力等)
print(値1,値2, sep="区切り文字", end="行末文字")
エスケープシーケンス
\n
改行 \t
タブ \"
ダブルクオート \\
バックスラッシュ
例:print("文書\n文書")
計算
print("1 + 2",end=" = ") print(1 + 2) a = ((3+2)/2+10) * 10 # = 125 print("a =","((3+2)/2+10) * 10 =",a) #小数点の丸め print("round(a/c*100) % =",round(a/c*100),"%") #切り上げ切り下げはmathモジュール
数値演算子
+ - * /
//
(小数点以下切り捨て)
%
(割ったあまり)
**
(累乗)
文字列演算子
+
連結 *n
n回の繰り返し
代入演算子
a += 1
(a = a + 1)
+=
足す -=
引く
*=
/=
//=
%=
**=
文字の操作
text = "Shimbun Yomiuri" #文字列[位置] #Shimbun Yomiuri #前から 0,1,2,,, print(text[8],end="") #Y #後ろから -1,-2,-3,,, print(text[-6],end="") #o #スライス print(text[10:15]) #miuri print(text[8:8+7],end=" ") #Yomiuri #最初からある文字まで print(text[:7]) #Shimbun #ステップで抜き出す print(text[6:10:3]) #no print(text[::5]) #Sum
演算子
比較
==
!=
>
>=
<
<=
論理
and
or
not
ビット演算子
&
|
^
-
シフト
<<
>>
型
type()
整数 int 浮動小数点 float 文字列 str
str()
数値から文字列への変換
int()
整数への変換
float()
浮動小数点への変換
isinstance(オブジェクト,クラス)
インスタンスの確認(一致でTrueを返す)
変数
Pythonは定数なし(大文字の変数で表現)
文字は、大文字、小文字のアルファベット、数字、アンダーバー_
が使用できる。
予約語は使用できない 先頭に数字は使用できない
関数
関数(引数,引数2)
組み込み関数
数値 : print()
出力 abs()
絶対値 max(数値1,数値2,,,,)
最大 min(数値1,数値2,,,,)
最小 round(数値,桁)
数字の丸め 等
文字列 : chr(整数)
ord(文字)
Unicode変換 len(文字列)
文字数(2バイト文字も1文字換算) 等
出入力 : print()
input(説明)
ユーザー入力 open()
ファイル 等
モジュール
import モジュール名,モジュール名2,,,
import モジュール名 as 名(として用いる)
from モジュール名 import 関数名
(as 名(として)
) 関数のみ
(関数として読み込んだ場合、使うためにモジュール名の指定は必要ない)
モジュール名.関数()
モジュールの関数を使用
import math math.floor(15.4) #切り捨て math.sin(1) #.sin() , .cos(1) , .tan(1) math.pi #定数 math.degrees(math.pi) #radianからdegreesへの変換
文字列のメゾット
s = "Pythonオブジェクト" print(s) #Pythonオブジェクト print(type(s)) #<class 'str'> print(s.upper()) #PYTHONオブジェクト print(s.lower()) #pythonオブジェクト print(s.swapcase()) #pYTHONオブジェクト print(s.count("n")) #1 print(s.find("n")) #5 無ければ-1 print(s.replace(検索文字列,置換文字列,回数)) #検索文字列の置換
format()
#Python 3.5 s = "{0} {2} Python {1} Bot" print(s.format(10,"Market","New")) s = "{t} Python {n} Bot" print(s.format(t = "New",n = "Market"))
#Python 3.6 t = "New" n = "Market" s = f"{t} Python {name} Bot" #最初にfもしくはF print(s)
条件分岐(if)
True
1, Falseとみなされないなんらかの値
False
0, None, 0.0, 空の値
if 条件: 処理1 else: #Falseの場合 処理2
if 条件: 処理1 else: #Falseの場合 処理2
if 条件1: 処理1 elif 条件2:#条件1がFalseの場合のみ 処理2 else: #両方Falseの場合 処理3
test = a if a>b else b
特殊な書き方(Trueならa、Falseならb)
繰り返し(while)
条件がTrueの間、処理を繰り返す
while 条件: 処理 #条件判定(while)を再度行う else 処理2(whileがFalseの場合)
break
繰り返しを止める else処理は行われない
continue
中断しwhile判定を再度行う
繰り返し(for)
for 変数 in データ群 :
range(開始,終了,ステップ)
#n回の繰り返し #iにrange(n)を順番に入れる for i in range(n): 処理1 else 処理2
#3×3の位置 for x in range(3): print() for y in range(3): print(f"({x},{y})",end="")
(Pythonではカウンタは使わない)
例外処理(try)
try : 処理 except : エラー時の処理 finally : 最後に実行する処理(exceptの場合でも実行)
try : except 例外 : else :
try : test = "a" int(test) except ValueError : print("ValueError") except ZeroDivisionError : print("ZeroDivisionError") except Exception as exception: print(exception) except BaseException as base_exception: print(base_exception) else : print("done")
リスト
(Pythonにはリストの他、似たものとして、ダブル、辞書、配列(NumPy)がある)
list[要素,要素,要素]
list[値1,値2,値3]
a = 1 b = 2 c = 3 list = [a,b,c] print(list) #[1,2,3]
[1, 2, 3]
変数の値がリストに入る。
zeros = [0]*5 text = ["text",".txt"]*2
[0, 0, 0, 0, 0]
['text', '.txt', 'text', '.txt']
list()
a = list(range(-5, 6, 2))
[-5, -3, -1, 1, 3, 5] #ステップで奇数のみのリスト
a = list("word")
['w', 'o', 'r', 'd']
a[0]
インデックス番号
a[1] = "check"
listはimmutableではなくmutableなので変更できる
a[0] = ["b","c"]
多重(多次元)リスト
IndexError
存在しないインデックス番号
.append(値)
リストの最後に要素を追加
.insert(位置,値)
リストの指定位置に要素を挿入
.pop(値)
リストの最初か最後を抜き取る(0,-1)
.remove(位置)
リストの指定位置を抜き取る (delによる定義の削除も可能)
a = ["A","B","C"] if "B" in a: a.remove("B") print(a)
['A', 'C']
.split(セパレータ)
文字列を区切りでリスト化する
セパレータ.join(リスト)
リストをセパレータで文字列化する
リストの連結、分割、複製、比較
リストA + リストB
連結
リスト += ["要素"]
最後に連結
リストA.extend(リストB)
連結
リスト[開始:終了(:ステップ)]
分割(スライス)
リストA = リストB
同じオブジェクトのリスト is
確認
リスト.copy()
複製 リスト[:]
複製 list(リスト)
複製
リストの並び替え
リスト.sort()
並び替え 小から大 AからZ 大文字から小文字
リスト.sort(reverse = True)
並び替え(降順) 大から小
sorted(リスト)
並び替え 元のリストを書き換えない
sorted(リスト,reverse = True)
並び替え(降順) 書き換えない
リスト.reverse()
逆順
リスト.sort(key = len)
比較関数 文字列の長さで並び替え
sorted(リスト, key = str.lower)
比較関数 大文字小文字の区別をしない
random.shuffle(リスト)
randomモジュール ランダムに並び替え 書き換えない
リストの取り出し
当てはまる要素を順に取り出す
for 単語 in リスト : print(単語)
enumerate() カウントする
for i, 単語 in enumerate(リスト, 1) print(f"{i} {単語}")
zip()
リストの同時操作
リスト内包表記
[変数Aの処理 for 変数A in リスト]
a = [1, 2, 3, 4] c = [b*5 for b in a] print(c)
[変数Aの処理 for 変数A in リスト if 条件]
a = [1, 2, 3, 4] c = [b for b in a if 1 < b < 4] print(c)
リストの要素を検索
要素 in リスト
一致 TrueもしくはFalse
リスト.index(要素)
一致する要素の位置
リスト.count(要素)
一致する要素の数
sum(リスト)
合計 max(リスト)
最大 min(リスト)
最小
#一部文字列(一部の単語等)の検索 a = ["ok","test"] b = "te" for i in a: if b in i: result = True break print(result)
リストの要素のランダムな取り出し
import random a = ["ok","test"] result = random.choice(a) print(result)
ランダムな10個の数値リスト
from random import randint numbers = [] while len(numbers)<10 : n = randint(0,100) if n in numbers: continue numbers.append(n) print(numbers)
タプル
タプルはimmutable(作成後にその状態を変えることのできないオブジェクト)
a = 1, b = (0,1,2) (c, d) = (1, 2) c, d = 1, 2
tuple()
タプルへの変換
セット(集合)
set()
セットへの変換 重複する要素は除外される 要素に順番はない
a = set()
空集合
.add()
.remove()
.discard()
.clear()
.pop()
frozenset()
.union()
.intersection()
.difference()
.symmetric_difference()
&
-
^
==
!=
|=
&=
-=
.update()
.intersection_update()
.difference_update()
.symmetric_difference_update()
.isdisjoint()
.issubset()
<=
.issuperset()
>=
辞書
{名前:値,名前:値}
要素はイミュータブル
dict()
a = dict(news=1,mail=2,search=3)
辞書A.update(辞書B)
del 辞書[名前]
.copy()
.get()
in
関数
引数無し、戻り値有り
def 関数名() 処理 return 戻り値
引数有り、戻り値有り
def 関数名(引数)00 引数を使用した処理 return 戻り値
pass
処理が未定の場合に用いる return None
処理を途中で抜ける
def triangle(base, height): area = base * height / 2 return area a = triangle(15,13) print(a)
関数内で定義された変数はローカル変数であり、全体で利用されるグローバル変数とは異なる。関数内でもグローバル変数は利用することができる。
位置引数とキーワード引数がある。引数には初期値が設定できる。
*引数名
*を頭につけ引数をタプルで指定 (*args
**kwargs
)
sys.argv
コマンドラインからの引数
def calc(a,*arg): #処理 return arg print(calc("a","b","c"))
関数オブジェクト
def do(func): func() def a(): print("Hi!") b = print b("Hello World!") do(a)
クロージャ(関数閉包)(関数内関数)
def closure_1(a): def closure_2(b): return a * b return closure_2 c = closure_1(10) print(c(2))
無名関数 (lambda式)
#def a(x,y): # return x + y #print(a(2,5)) b = lambda x, y : x + y print(b(2,5))
a = (lambda x,y : x + y)(2,5)
ソート関数
def sort(a): list = ["A","C","B"] b = list.index(a) return b list = ["A","A","B","B","C"] list.sort(key = sort) print(list)
map()
map(関数,イテラブル)
fillter()
fillter(関数,イテラブル)
イテレータ(iterator)
list = ["A","C","B"] a_iter = iter(list) print(next(a_iter)) print(next(a_iter))
ジェネレータ(generator)
def generator_a(): yield "A" yield "B" yield "C" abc = generator_a() print(next(abc)) print(next(abc))
クラス定義
クラス名の一文字目は大文字にするのが慣例
第1引数にはselfが慣例
class Aa: def __init__(self,color = "赤"): self.color = color self.score = 0 def add(self,score): self.score += score msg = f"{self.color} : {score}点加算、合計点数は {self.score}点" print(msg) player1 = Aa("赤") player2 = Aa("青") print(f"プレイヤー1 : {player1.color}") print(f"プレイヤー2 : {player2.color}") player1.add(15) player2.add(5) player1.add(10) player2.add(5) print(f"プレイヤー1 : {player1.score}点") print(f"プレイヤー2 : {player2.score}点")
クラスメゾット
class Aa: group = "A" num = 0 @classmethod def count(cls): cls.num += 1 print(f"追加{cls.num}") def __init__(self,color = "白"): Aa.count() self.serial = Aa.num self.color = color self.score = 0 def add(self,score): self.score += score msg = f"{self.color} : {score}点加算、合計点数は {self.score}点" print(msg) player1 = Aa("赤") player2 = Aa("青") player3 = Aa("黄") print(f"プレイヤー1 color:{player1.color} serial:{player1.serial} group:{player1.group}") print(f"プレイヤー2 color:{player2.color} serial:{player2.serial} group:{player2.group}") print(f"プレイヤー3 color:{player3.color} serial:{player3.serial} group:{player3.group}") player1.add(15) player2.add(5) print(f"プレイヤー1 : {player1.score}点") print(f"プレイヤー2 : {player2.score}点")
クラスの継承
class Aa: a = "A" class Bb(Aa): b = "B" c = Bb() print(c.a)
オーバーライド
#サブクラス def 上書きする関数名(self,引数)
super()
プロパティ
__変数名
非公開のインスタンス変数
@property
ゲッター関数
@プロパティ.setter
セッター関数
ファイル操作
モジュールの再読み込み
import importlib importlib.reload(モジュール名)