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'