変数
varはなくていい
型は自動で決まる
型宣言はできるがエラーにはならず意味がないので不要
nb: int = 1
num = 100
str = 'aaaa'
定数はないけど、大文字にするのが習わし
VERSION = 1.2
数値
17 / 3 少数まで割り算(割り切れてもfloat)
17 // 3 割り算の商
17 % 3 割り算の余り
divmod(17, 3) 商余りをタプルで返す
round(3.1415, 2) -> 3.14 # 指定した小数点で丸める
数学関数はmathパッケージを利用
import math
sq = math.sqrt(25)
print(help(math))
型変換
int('10')
str(12)
文字列
ダブルクオーテーション、シングルクォーテーションどちらも同じ。
個人的には英語表記しやすいダブルクオーテーションでいいと思う。
"I don't know"
'I don\'t know' # バックスラッシュでエスケープ
"aaa" + "bbb" # +で連結
"Hi" * 3 # 繰り返し
len(word) # 長さ
rを先頭につけてrawData表示、バクスラッシュを文字として出す
r'c:\users\desktop'
複数行で表示(\をつければ改行を無視)
longstr = """\
aaa
iii
uuu\
"""
ソースの改行。カッコの中はバックスラッシュ不要
strlng1 = ("aaaaaiiiiiuuuuu"
"eeeeeooooo")
strlng2 = "aaaaaiiiiiuuuuu"\
"eeeeeooooo"
入力チェック
xxx = ""
if not xxx:
print('empty')
文字列のスライス
word = 'python'
print(word[-1])
print(word[0:2])
print(word[:2])
word[0] = 'j' # イミュータブルなのでインデックスで直接文字を置き換えられない
word = 'j' + word[1:] # 新たに作る
文字列のメソッド
str.startswith('my')
str.find('name') # 位置indexを返す、なかったら-1
str.index('name') # 位置indexを返す、なかったらエラー
str.count
str.upper # 全部大文字に
str.lower # 全部小文字に
str.capitalize # 最初の文字を大文字
str.title # 単語の先頭を大文字
str.replace('aaa', 'bbb')
str.rstrip('e') # 右側から指定文字を削除(指定なしはスペース削除)
など
文字のフォーマット
"a is {}".format("a")
"i am {family} {first} ".format(first="bon", family="jovi")
3.6以降
変数をそのまま文字に入れるのでわかりやすい(フォーマット済み文字列リテラル)
x, y, z = 1, 2, 3
f"this is {x}, {y}, {z}"