PUROGU LADESU

ポエムがメインのブログです。

速習Python 数値と文字列

print

"python" でインタラクティブモード起動
print()
type() #変数の型を確認
print('aaa', 'bbb', sep=',')

変数

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}"