web学習日記

プログラミングやweb関係を学んだことを呟くブログ

Python基本文法まとめ チートシート

f:id:nana205:20190614015147p:plain

Pythonチートシートを作成しました。

興味本位でPythonを学んでいたのですが、忘れてしまうためまとめて整理します。

Hello world
print "Hello world!"
コメント
print "Hello"       # Helloと表示します
インデント

PerlPHP では文を { ... } で囲むことでブロック(複文)を構成しますが、Python ではインデント(行頭の空白文字の数)が重要な意味を持ち、同じ数の空白でインデントされた文がブロックとみなされます。

a = 3
if a == 5:
    print "AAA"    # if文の対象
    print "BBB"    # if文の対象
print "CCC"        # if文の対象ではない
エンコードルール(coding:)

日本語など、ASCII以外の文字を含むスクリプトを作成する場合は、スクリプトの1行目、または2行目に、下記の形式でスクリプトエンコードルール(coding:) を指定してください。大文字・小文字は無視されます。

# coding: utf-8

print "Hello world"    # 文字列やコメントに日本語を使えるようになります
エスケープシーケンス
\改行       #: バックスラッシュと改行が無視される
\\         #: バックスラッシュ(\)
\'         #: シングルクォート(')
\"         #: ダブルクォート(")
\a         #: ベル(BEL)
\b         #: バックスペース(BS)
\f         #: フォームフィード(FF)
\n         #: 改行(LF)
\r         #: 復帰(CR)
\t         #: タブ(TAB)
\v         #: 垂直タブ(VT)
\nnn       #: 8進表記文字(nは0~7)
\xnn       #: 16進表記文字(nは0~f)
\uxxxx     #: ユニコード文字xxxx (例: u"\u3042")
\U....xxxx #: ユニコード文字xxxxxxxx (例: U"\U00003042")
\N{name}   #: Unicodeデータベース文字 (例: u"\N{HIRAGANA LETTER A}")

※windowsはバックスラッシュを円マークに
ビット演算子
~a            # ビット反転
a & b         # AND:論理積(aもbも1のビットが1)
a | b         # OR:論理和(aまたはbが1のビットが1)
a ^ b         # XOR:排他的論理和(aまたはbが1のビットが1)
a << b        # b ビット左シフト
a >> b        # b ビット右シフト
代入演算子
value += 5 ... value = value + 5 と同じ
value -= 5 ... value = value - 5 と同じ
value *= 5 ... value = value * 5 と同じ
value /= 5 ... value = value / 5 と同じ

value **= 2 ... value = value ** 2 と同じ

value //= 2 ... value = value // 2 と同じ

value %= 2 ... value = value % 2 と同じ
文字列

ただの文字列でも配列みたいな扱いができる

# その1
str = "Apples"
str[0]            # 'A'

# その2
"test"[2]        # 's'

# その3
ex = "Apples"
ex[:3]            # 'App'
ex[1:4]            # 'ppl'
ex[3:]            # 'les'
比較演算子
x == y           # x が y と等しい
x != y           # x が y と異なる
x < y            # x が y よりも小さい(未満)
x > y            # x が y よりも大きい
x <= y           # x が y 以下
x >= y           # x が y 以上
x <> y           # x が y と異なる
x is y           # x が y と等しい
x is not y       # x が y と異なる
x in y           # x が y に含まれる
x not in y       # x が y に含まれない
ライブラリをインポート(from , import)
#ライブラリを指定してインポートする
import ライブラリ名


#ライブラリを指定して別名を付けてインポートする
import ライブラリ名 as 別名


#パッケージ配下のライブラリを指定してインポートする
from パッケージ名 import ライブラリ名 as 別名


# モジュール配下のすべてをインポートする  import *
from パッケージ名 import *
相対パスでライブラリをインポート(from , import)
#同じパッケージ内のライブラリをインポート
from . import ライブラリ名


#サブディレクトリのライブラリをインポート
from サブディレクトリ名 import ライブラリ名
関数の処理
関数の作成(def)
def 関数名(引数):
    処理
    return 戻り値
※戻り値や引数は無くても作成可能,引数を複数指定する際は , でつなぐ

#関数の作成
def func_a(a):
    return a + 11

#関数の実行
print(func_a(7))

------------------------------

18
ジェネレータ
ジェネレーターの作成
def 関数名(引数):
    処理
    yield 戻り値
    処理

※ジェネレーターは呼び出されるたび、行われた処理を記憶(ステート)。
リスト全体をメモリ内に保持するのが難しい時に役立つ

#ジェネレーターの作成
def counts():
    x = 0
    while True:
        yield x
        x += 1

y = counts()
for i in y:
    print(i)
    if i == 2:
        break

------------------------------

0
1
2


for i in y:
    print(i)
    if i == 5:
        break

------------------------------

3
4
5

今回はこの辺で