科学の箱

科学・IT・登山の話題

Python

automated the boring – day 3

投稿日:2018年2月23日 更新日:

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'

 

メタ情報

inarticle



メタ情報

inarticle



-Python
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

numpy.arange()を使って等差数列を生成する

等差数列を作るためにはnumpy.linspace()を使うと話をした。しかしlinspace()は要素数を指定するためにかえって混乱を招くことがある。そこで便利なのが公差を指定して配列を作ってくくれ …

no image

dataframe形式で便利なのはいろいろなメソッドが用意されているから

dataframeにすることのメリットは何かといわれると、dataframeにしたとたんに様々な処理をメソッドで実行できるからである。 例えば値がNaNになっていると、処理を進めるうえでいろいろな問題 …

no image

RoboBrowserで提供しているメソッドget_linksにおけるパラメータの指定方法

get_linksは便利だが文字列を指定する際に少々手間取った。 結論から言うと文字列で指定する方法とre.compileオブジェクトを指定する方法の2つがある。 まず一つ目は単純な文字列。exact …

no image

kaggle Titanic Tutorial – 4

名前から取得できるタイトルを分析に利用してみる。 タイトルは末尾に”.”がついているのでこれを利用して切り出す。 def get_title(name): if ‘.’ in …

no image

蟻本 P42 硬貨の問題

貪欲法の基本 その時点で最善の手を尽くす 尽くした結果を目的とする値に反映させる。 次善の手になるようにする。 1に戻る 硬貨の問題 A=int(input()) *C,=map(int,input( …

2018年2月
« 1月   3月 »
 1234
567891011
12131415161718
19202122232425
262728  

side bar top



アーカイブ

カテゴリー