2020-04-12に更新

超速! Python基礎文法集(自分用チートシート)

超速! Python基礎文法集

超簡潔に自分用チートシートにしておく。ところどころ感覚的に掴むために変な書き方してます。「関数・クラス」などは随時追記か別でまとめるかも。
「Pythonではじめるアルゴリズム入門」を教材にさせていただいてます。数学好きなら興味深い題材がたくさん。

(0)実行

コマンド

  • python --version でバージョン確認
  • python で対話モード開始
  • python filename.py でスクリプトファイルを実行

文字コードの指定に注意

  • Python3系であれば、文字コードは UTF-8 を使う。
  • Python2系であれば、ソースコードの冒頭に以下が必要
    # -*- coding:utf-8 -*- または # coding:utf-8

(1)基本

  • コメントアウトは#
  • 途中の改行は\(バックスラッシュ)
  • データ型を調べる type(hoge)

変数 valiable_name

  • アルファベットと数字、アンダーバー(予約語不可,1文字目はアルファベット or アンダーバー )
  • コーディング規則 PEP-8 => 変数名は小文字・アンダーバーで連結

リストとタプル

  • データの型に制約はなく、異なる型の要素でも同じリスト・タプルに格納できる
  • 要素指定の範囲を:で区切る方法
list = [0, 1, 2 ,3, 4]

list[1:3]     # 1番目〜3-1番目(1, 2)が取り出せる
list[2:]       # 2番目〜最後(2, 3, 4)が取り出せる
list[:3]       # 最初〜3-1番目(0, 1, 2)が取り出せる
list[:-3]     # 最初〜5-3番目(0, 1)が取り出せる。後ろから3つの要素を省いて取り出す感覚?
  • 取り出せる要素数の計算方法 list[a:b] => b - a 個( list[a:] => len(list) - a)

リスト [list]

  • 後から変更できる list = [1, 2, 3] で定義 / list[0]で取り出す

タプル (taple)

  • 変更不可 taple = (1, 2, 3)で定義 / taple[0]で取り出す
  • 処理がリストよりも若干高速・間違ってデータを置き換える心配がなくなる
  • タプルの中身を変更しようとするとError
    TypeError: 'Tuple' object does not support item assignment

    文字列 'シングルクォート' "ダブルクォート"

    • リストのように一部を取り出すこともできる 'hoge'[1] # => 'o'
    • 文字列の連結もできるがデータ型に注意。テクニック
      'abc' + str(123)  で数字 => 文字列へ変換して文字列表
      'abc%i' % 123  で文字列の中に数字を埋め込んで文字列表示
  • データ型の違う文字列と数字の足し算をするとError
    TypeError: unsupported operand type(s) for +: 'int' and 'str'

(2)条件分岐と繰り返し

  • 条件の最後に:ブロック内インデント必須
  • 比較演算子論理演算子、演算子の優先順位に注意

条件分岐 if

  • 条件を増やすときはelif
if (hoge >= 10) and (hoge < 20):
    'hogeは10以上20以下'
else:
    'hogeは10以下または20以上'

繰り返し for

  • 指定した回数だけ繰り返すとき使用
  • 基本:range(10) で10回繰り返し、range(4,7)で4,5,6と繰り返し
for i in range(10):
    print(i)
  • リストを指定するとその要素が順に取りされる
  • リストに格納した要素を位置と合わせて順に処理するときはenumerate()関数で
for i in [5, 3, 7]:
    print(i)    # => 5, 3, 7と順番に出力される

for i, e in enumerate([5, 3, 7])):
    print(i, ':', e)    # => '0 : 5'…と位置と要素のペアが順番に出力される

繰り返しwhile

  • 事前に繰り返す回数がわからないとき条件式と合わせて使用
i = 0
while i < 4:
    print(i)
    i += 1

(3)リスト内包表記でリストを作成する

  • リストに要素を連続して追加したいとき( forとブロックを使ってlist.append(i) で要素追加できるがそれより簡素)
  • リスト内包表記の方が処理が高速になることがある
  • ifを分の後ろに書けるのはPythonではリスト内のみ

(1)順番に for で取り出す:集合 {x | xは10未満のℕ)

data = [i for i in range(10)]      # 0〜9までの10個の要素が追加

(2)条件付き ifを組合せて取り出す:集合 {x | xは10未満のℕ, xが偶数のとき}

data = [i for i in range(10) if i% 2 == 0]      # 0〜9までの偶数のみ追加

(3)条件付き if 〜 elseを組合せて取り出す:集合 {x | xが偶数ならその数, それ以外のときは0, xは10未満のℕ}

data = [i if i % 2 == 0 else 0 for i in range(10)]      # 0〜9まで 偶数のときはその値を、奇数のときは0を追加
ツイッターでシェア
みんなに共有、忘れないようにメモ

Massa

北海道でアプリ制作に取り組んでるノンプログラマな農夫。仕事や日常生活で感じる小さな不便を解消すべく趣味と実益を兼ねて遊んでます ■Python・GAS + LINE bot

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント