Pythonは普段触らないのでメモ。
四則演算
print(f"10 + 3 = {10 + 3}") # 13
print(f"10 - 3 = {10 - 3}") # 7
print(f"10 * 3 = {10 * 3}") # 30
print(f"10 / 3 = {10 / 3}") # 3.33333333
print(f"10 // 3 = {10 // 3}") # 3
print(f"10 % 3 = {10 % 3}") # 1
print(f"10 ** 3 = {10 ** 3}") # 1000
文字列のメソッド
・大文字、小文字変換print("Python".upper()) # PYTHON
print("Python".lower()) # puthon
・含む文字の数
s = "G" + ("o" *10) + "gle"
print(s.count("o")) # 10
print(s.count("oo")) # 5
print(s.count("ooo")) # 3
print(s.count('o', 5)) # 6 Goooo ooooole
print(s.count('o', 5, 8)) # 3 Goooo ooo oole
・文字列の位置を取得
s = "abcdefgabcdefg"
print(s.find("a")) # 0
print(s.find("a", 3)) # 7
print(s.find("a", 10)) # -1 該当なし
# 後ろから探す
print(s.rfind("a")) # 7
・トリム
s = " \tabc\t"
print(f"|{s}|")
print(f"|{s.lstrip()}|") #左側をトリムする
print(f"|{s.strip()}|") #左右トリムする
print(f"|{s.rstrip()}|") #右側をトリムする
・フォーマット
from datetime import datetime, timedelta
date_start = datetime.now()
date_end = date_start + timedelta(days=7)
# 文字列に直接埋め込むと…メソッド形式だと長すぎて可読性が悪い
print(f"開始:{date_start.strftime('%Y-%m-%d')} - 終了:{date_end.strftime('%Y-%m-%d')}")
# だからといって直接埋め込むために変数に設定しなおすべきか・・・
date_start_str = date_start.strftime("%Y-%m-%d")
date_end_str =date_end.strftime("%Y-%m-%d")
print(f"開始:{date_start_str} - 終了:{date_end_str}")
# 埋め込みたいものが長い場合はformatのほうが読みやすいかも
print("開始:{} - 終了:{}".format(date_start.strftime('%Y-%m-%d'), date_end.strftime('%Y-%m-%d')))
複数データ
data_list = [1, 2, 3]
print(data_list) # [1, 2, 3]
data_tuple = (1, 2, 3)
print(data_tuple) # (1, 2, 3)
data_set = {1, 2, 3, 1, 2, 3}
print(data_set) # {1, 2, 3}
data_disc = {"a" : 1, "b" : 2, "c" : 3}
print(data_disc) # {'a': 1, 'b': 2, 'c': 3}
文字列に変数埋め込み
f"…{変数名}…"
from datetime import datetime
now = datetime.now().strftime("%H:%M:%S")
print(f"現在の時間:{now}")
num = 10
print(f"数値は{num}")
条件分岐/繰り返し
・if文 (インデントでval = input("1:xxx, 2:xxx, 3:xxx\n選択してください。")
if val == "1":
print("1:xxx を選択しました")
elif val == "2":
print("2:xxx を選択しました")
elif val == "3":
print("3:xxx を選択しました")
else:
print("選択外です")
if文の中 or 外はインデントで決まる。
・and, or
&&, || ではなく and, or
ちなみに、2 <= val and val <= 10 は 2 <= and <= 10 ともかけるとのこと。
・notでtrueとみなすもの(falsyな値) False / None / 0 / 空(文字列、シーケンス、コレクションなど)
・while文
while True:
val = input("1-3の数値を入力してください")
if not val.isdigit():
print("整数値じゃありません")
continue
elif val == "1":
print("1を選択しました")
elif val == "2":
print("2を選択しました")
elif val == "3":
print("3を選択しました")
else:
print("1-3以外が選択されました。終了します。")
break
print("終了します")
while 条件:
else:
whileのelseは条件が偽となったときにだけ実行される。
breakで終了となったときは、実行されない
・for文
sum = 0
for i in range(1, 11): #1から10までの値
sum += i
print(sum)
data = [1, 3, 5, 7, 11, 13] #
for n in data:
print(n)
例外
import sys
try:
value = 1/0
except:
ex_type, ex_value, ex_traceback = sys.exc_info()
print(f"Type:{ex_type}") #Type:<class 'ZeroDivisionError'>
print(f"Value:{ex_value}") #Value:division by zero
finally:
print("後処理")