パイソンPython 入門、学習if文 for文、クラス継承、List型、文字列置換、正規表現、ファイル入出力

パイソンPython 入門、学習

Python is powerful… and fast;
https://www.python.org/

学習内容 if文 for文 

if文 if,elif,else 中括弧は要りません
for文 for in 、for(int i=0; i< 10; i++)はない rangeを使う

特徴

ガベージコレクションがあり、コードの記載はインデント規則を守ること(自由に変則的な書き方はできない、tabなし、改行なしで続けて書くことはできない等)

動画

参考サイト

python-izm
Kura IT LAB

パイソンPython 入門(2)、学習 関数、クラス プログラム

学習内容
関数 def
クラス class
インスタンス (instance) を生成
def __init__ 初期化、コンストラクタ

上記のコードはtricksがグローバル変数です。
今度は、インスタンス変数としてクラスの新しいインスタンス毎に個別の配列を持つように書き換えました。

実行結果

参考サイト

python-izm 関数
kura IT lab
Python チュートリアル

Python クラス継承(3)

学習内容
関数 def
クラス class
インスタンス (instance) を生成

スーパークラス、基底クラス、親クラス
class Human:

サブクラス、子クラス
class Ninja(Human):

サブクラス、孫クラス
class Hokage(Ninja):

python (4)List型について学習

# 追加
# insert 指定した位置に数値を挿入
# remove  削除
# pop 末尾削除OR 指定位置削除
#index  数値の位置を取得
#count 同じ数が何個入っているか
#リストの総数 len(a)

pythonパイソン 入門(5) 文字列置換、検索,find,indexの違いは?

find,indexの違いは?
見つからない場合が異なる

find -1を返す
index エラー(例外処理が必要)

文字列
testStr = “(1)abcx(2)abcPPP”

(1)
文字列の位置を取得
abc
testStr.find(“abc”,0)

(2)文字列を置換
abcをPPPに置換
testStr.replace(“abc”,”PPP”,1) # 1回だけ、指定がないと全部置換される。

(3)ある文字列の次に出現する文字列を置換
最初のabcは無視して、次のabcを置換したいとき、
最初の出現位置が分からない場合
(abcが1組すら無い場合という条件は無視して、
必ず2組があるという条件で、後ろからの検索はしない)

1組目のabcを探し
i = testStr.find(“abc”,0)
その次からさらにabcを探します。
testStr.find(“abc”,i+1)
見つかれば、testStrをループして、2番めのabcまでの文字列を別の変数に入れ、
abcの文字数から次の文字列を取得して、さきほどの変数に連結します。

参考サイト
http://www.isl.ne.jp/pcsp/python/python19.html#fifth

Pythonパイソン、入門(6)正規表現 文字列検索プログラム

正規表現は、文字列の集合を一つの文字列で表現する方法

基本的なメタ文字、一部

. ドット、1文字一致 a.c,a..d
*,0回以上の繰り返し
+、1回以上の繰り返し
?、0回または1回に一致
[a-zA-Z] アルファベットの大文字小文字の1文字
[a-zA-Z]+ アルファベットの文字列
[0-9] 数字1桁
[0-9]+  数値1桁以上
\d 数字1桁
\d{2}数値2桁
\d{2,} 数値2桁以上
\d{2,4} 数値の2桁から4桁で一致

r’c.a’のようにrをつけるとバックスラッシュをそのまま使えるそうです。

モジュール
import re
re.search(成功するとMatch Obect を返す、失敗ではNoneを返す)
group():一致した文字列
start():一致した文字列の開始位置
end():一致した文字列の終了位置
span():一致した文字列の範囲をタプルで返す

参考URL
http://www.geocities.jp/m_hiroi/light/python04.html

Pythonパイソン、入門(7)、ファイル入出力、FileI/O 文字コード変換

パイソンはUnicodeがお好き

読み込み
import codecs
fin = codecs.open(‘euc.txt’, ‘r’, ‘euc_jp’) #euc文字コードで読み込み
str=fin.read()
fin.close()

ファイル出力 
fout = codecs.open(‘out.txt,’w’,’euc-jp’) #euc文字コードで書き込み
str = “tes”
fout.write(str)
fout.close()

文字の変換はUnicodeを使おう、ファイル出力はUTF-8他の文字コードを使う
Unicodeはちょっと面倒だけど、Unicodeであれば文字列の処理が楽

uをつけてUnicode
text_uicode= u’今日は良い天気’ 

UTF-8からUnicodeへの変換
unicodeText= unicode(utfText,’utf-8′)

そして、UnicodeからUTF-8への変換
utfText= unicodeText.encode(‘utf-8’)

コード変換例
EUC-JPに変換
s = s.encode(‘euc-jp’);

Pythonパイソン、入門(8)、ディレクトリのファイル一覧取得、html拡張子のあるファイルの一覧

import glob, os.path
files = glob.glob(‘test/*.html’) # *.htmlと指定できる、正規表現もOK
# ディレクトリかファイルがないときのために len(files) == 0としてチェックをいれましょう。
for c in files:
print c #フルパスとファイル名による出力
print os.path.basename(c) #ファイル名のみ

import os
files = os.listdir(‘test’) # ワイルドカード指定等が出来ない
for c in files:
print c

ディレクトリ取得の参考サイト

・ファイル・ディレクトリ取得
#指定パスが存在するかどうか確かめる,など、実際の入力コードがあります。

http://www.gesource.jp/programming/python/code/0001.html

こちらの記事もどうぞ