Python3 チートシート

しばらく別の言語を触っていると細かい文法をすぐに忘れてしまうので、必要になった時に最短で思い出せるように。
## for文
```python:
# for文(1)
for i in range(10):
    print(i, end = "") # => 0123456789
# for文(2)
for i in range(1, 10):
    print(i, end = "") # => 123456789
```

## リスト（配列）
```python:
# リストの作成
sekitori_shu = ["玉鷲", "豪栄道", "白鵬"]
# インデックスを指定してリストの要素を取得
print(sekitori_shu[0]) # => 玉鷲
# forループでリストの要素を全て取得
for sekitori in sekitori_shu:
    print(sekitori, end=",") # => 玉鷲,豪栄道,白鵬,
# リストの要素数の取得
num = len(sekitori_shu)
print(num) # => 3
# リストに要素を追加
sekitori_shu = ["玉鷲", "豪栄道", "白鵬"]
sekitori_shu.append("鶴竜")
print(sekitori_shu) # => ['玉鷲', '豪栄道', '白鵬', '鶴竜']
#リストの要素を削除(インデックス指定)
del sekitori_shu[0]
print(sekitori_shu) # => ['豪栄道', '白鵬', '鶴竜']
#リストの要素を削除(要素指定)
sekitori_shu.remove("白鵬")
print(sekitori_shu) # => ['豪栄道', '鶴竜']
# 指定した位置に要素を追加
sekitori_shu.insert(0, '高安')
print(sekitori_shu) # => ['高安', '豪栄道', '鶴竜']
# カンマ区切りで分割してリスト化
sekitori_shu_str = "玉鷲,豪栄道,白鵬"
sekitori_shu = sekitori_shu_str.split(",")
print(sekitori_shu) # => ['玉鷲', '豪栄道', '白鵬']
# 二次元リストの作成
sekitori_shu = [["白鵬", "鶴竜"], ["豪栄道", "高安", "栃ノ心"], ["玉鷲", "御嶽海", "逸ノ城"]] #番付別
print(sekitori_shu) # => [['白鵬', '鶴竜'], ['豪栄道', '高安', '栃ノ心'], ['玉鷲', '御嶽海', '逸ノ城']]
```
## 辞書
```python:
# 辞書の作成
sekitori_shu = {"玉鷲" : 173, "豪栄道" : 160, "白鵬" : 155} #体重
# for文でkeyを全て取得
for key in sekitori_shu:
    print(key, end=",") # => 玉鷲,豪栄道,白鵬,
# for文でkeyとvalueを全て取得
for key, val in sekitori_shu.items():
    print(key + "の体重は" + str(val) + "キロです")
    # => 玉鷲の体重は173キロです
    # => 豪栄道の体重は160キロです
    # => 白鵬の体重は155キロです
```
## 文字列操作
```python:
str = "aPple"
# 先頭だけ大文字にする
print(str.capitalize()) # => Apple
# すべて大文字にする
print(str.upper()) # => APPLE
```

## ランダム
```python:
# 1～10をランダムに取得
import random
num = random.randint(1,10)
```
## 関数(メソッド)
```python:
# 関数の定義、呼び出し
def greeting():
    print("ごっつぁんです")
greeting() # => ごっつぁんです
# 戻り値を返す
def sum(x, y):
    return x + y
print(sum(5, 10)) # => 15
# デフォルト値
def intro_sekitori(mibun = "関取"):
    print("私は" + mibun + "です")
intro_sekitori() # => 私は関取です
intro_sekitori("横綱") # => 私は横綱です
# 可変長引数(リスト)
def intro_sekitori(*names):
    for name in names:
        print("私は" + name + "です")
intro_sekitori("玉鷲", "豪栄道", "白鵬")
# => 私は玉鷲です
# => 私は豪栄道です
# => 私は白鵬です
# 可変長引数(辞書)
def show_weight(**names):
    for name, weight in names.items():
        print(name + "の体重は" + str(weight) + "キロです")
show_weight(炎鵬 = 99, 白鵬 = 155 , 逸ノ城 = 227) #keyを"文字列"にするとエラーになる
# =>炎鵬の体重は99キロです
# =>白鵬の体重は155キロです
# =>逸ノ城の体重は227キロです
```
## クラス
```python:
# クラス、メソッドの定義
class Rikishi:
    def introduce(self, name):
        print("私は" + name + "です")
rikishi1 = Rikishi()
rikishi1.introduce("朝青龍") # => 私は朝青龍です
# コンストラクタ
class Rikishi:
    def __init__(self, name):
        self.name = name
    def introduce(self):
        print("私は" + self.name + "です")
rikishi2 = Rikishi("栃ノ心")
rikishi2.introduce() # =>私は栃ノ心です
# プライベート変数、プライベートメソッド
  # => __を先頭に付ける
```
## 日付時刻
```python:
#日本のタイムゾーンを作成して現在日時表示
jst = timezone(timedelta(hours=9))
today = datetime.now(jst)
print(today) # => 例)2019-09-01 19:07:14.548284+09:00

#年・月・日を個別に出力
print(today.year) # => 2019
print(today.month) # => 9
print(today.day) # => 1

#文字列からdatetimeオブジェクト作成
day = datetime.strptime("2019/12/31 15:37:09", "%Y/%m/%d %H:%M:%S")
print(day) # => 2019-12-31 15:37:09
```
## 例外処理
```python:
import traceback, sys
monsters = ["デビルアーマー", "てっこうまじん", "ガーディアン"]
try:
    print(monsters[3])
except IndexError as ex:
    print(ex)  # => "list index out of range"
    print(traceback.format_exc())  # => "Traceback..."
    sys.stderr.write(traceback.format_exc())  # => "Traceback..."(標準エラー出力)
finally:
    print("END")
# => "list index out of range" "Traceback..." "END"