科学の箱

科学・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

graphvizのコマンドラインから実行

dot -Kdot -Tpng test.dot -o test.png Related posts:matplotlibのお役立ちリンク画面に描画する線のフォーマットを変えるpycharmでターミナ …

no image

kaggle Titanic Tutorial – 10

いろいろ試しているがうまくいかないので、とりあえずAgeを正しく補完できるか調べる。 調査は線形回帰でどれくらい相関が出るかで判断する。   import numpy as nm impor …

no image

グリッドサーチ

機械学習のアルゴリズムを利用する際に一つの問題がパラメータの最適化。例えばSVMではガンマパラメータを適切に設定しないと結果は使い物にならないことがある。このパラメータは自分で設定する方法もあるが、P …

no image

Numpyまとめ

環境及びインポート numpyのインポートおよび環境確認 配列生成 配列をリストから生成 配列の属性を確認 すべての要素が同じ値を持つ配列を生成 空の配列を生成 numpy.linspace()を使っ …

no image

seleniumでWebElement object is not iterableが出るときの対処方法

iterableなオブジェクトを想定して要素を取得、forループに取り込むと下記のようなWebElement object is not iterableが出る。 結論としては勘違い。 Seleniu …

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

side bar top



アーカイブ

カテゴリー