https://automatetheboringstuff.com/
今回はまずは文字列操作から。とりあえず基本のところを押さえておく。
print("Hello there!\nHow are you?\nI\'m doing fine.") spam = 'Hello world!' print(spam[0:5]) print(spam.upper()) print(spam.lower()) print('hello'.isalpha())
次に入力で用いるvalidationの処理
while True: print('Enter your age:') age = input() if age.isdigit(): break print('Your age : ' + age)
Listと組み合わせて強力な操作関数がjoin。これを使えば文字リストから簡単にCSV形式のファイルを作れる。
print(', '.join(['cats', 'rats', 'bats']))
CSVファイルを読み込んでから逆にリストを作成するにはsplitを用いる。この辺りはデータ分析で間違いなく利用する。
animal = 'dog,cat,elephant'.split(',') print(animal)
文字列操作で正規化表現を欠かすことができない。入力チェックでは細かいチェックを正規化表現なしにするとソースコードを相当書き込むことになる。しかしこれは同時にソースコードの柔軟性がなくなることをいみする。ここで正規化を利用すれば例えば10行位で記述する内容が2、3行になる。
>>> import re >>> phonnumregex = re.compile(r'\d\d-\d\d\d\d-\d\d\d\d') >>> mo = phonnumregex.search('my phone number is 03-1234-5678') >>> print('phone number found : ' + mo.group()) phone number found : 03-1234-5678
あらかじめグループをトークンに分けたいときには正規化表現で括弧を使って分けておくとmo.groupで個別のトークンを取り出すことができる。
>>> phonnumregex = re.compile(r'(\d\d)-(\d\d\d\d)-(\d\d\d\d)') >>> mo = phonnumregex.search('my phone number is 03-1234-5678') >>> mo.group(0) '03-1234-5678' >>> mo.group(1) '03' >>> mo.group(2) '1234' >>> mo.group(3) '5678' >>> mo.group() '03-1234-5678'