基本文法†
- python では、{ } を使わず、インデントでブロックを表現する
- 接頭辞として def を記述する
def func_hoge():
print( "aaaa\n" );
- デフォルト引数の指定
def func_hoge( name, msg = "こんにちは" ):
print( name, "さん、", msg );
- 返り値
def func_hoge( name, msg = "こんにちは" ):
result = 12;
return result;
- ラムダ式を定義することが出来る。書式は以下
def lambda 引数リスト: 処理
- ラムダ式では、 ":" の後ろに改行を入れずに処理を記述することが出来る
値の扱い†
組み込み型†
bool 型†
True / False
文字列†
- 文字列変数 str_val に対して、以下の関数が使用出来る:
find() / rfind()†
str_val.find(<検索したい文字列>, [開始インデックス], [終了インデックス] );
- 指定した文字列の先頭を、0-origin なインデックス値として返す。
- 指定した文字列が見つからなかった場合は -1 が返る
- find() が先頭から検索するのに対し、 rfind() は終端から検索する
index() / rindex()†
str_val.index(<検索したい文字列>, [開始インデックス], [終了インデックス] );
- find() / rfind() と同じように動作する
- 指定した文字列が見つからなかった場合、find() / rfind とは違い、 ValueError という例外を送出する。
endwith()†
str_val.endwith(<検索したい文字列>, [開始インデックス], [終了インデックス] );
- str_val の終端が <検索したい文字列> であれば True (真)を返す。
startwidth()†
str_val.startwidth(<検索したい文字列>, [開始インデックス], [終了インデックス] );
- str_val の始端が <検索したい文字列> であれば True (真)を返す。
split() / rsplit()†
str_val.split( [区切り文字], [分割数] );
- 区切り文字で区切って分割した文字列にする。その際、区切り文字は除去される。
- [分割数] を指定しなかった場合、始端から終端まで分割を行う。
- 分割数に関しては、 split() は先頭から、 rsplit() は終端から数える
join()†
strip()†
upper()†
lower()†
ljust()†
文字のフォーマット†
ソート†
sort()†
revers()†
remove()†
append()†
extend()†
pop()†
index()†
リスト / list†
リストの定義†
- リスト a を定義する
a = [ 1, 3, 5, 7, 9, 11 ] # リストの定義
print a # リストの中身をプリント
- リストの値を取り出す
i = a[3] # 変数 i にリスト a の3番目の要素を代入
スライス†
- スライスを使って、リストの複数の要素を、別のリストとして取り出す。
- 書式:
src_list[<start-idx>, <end-idx>] # list src_list から、<start-idx> から<send-idx> の要素を取り出す
src_list[<start-idx>:] # list_src から <start-idx> から終端までの要素を取り出す
src_list[:<end-idx>] # list_src から 始端から <end-idx> までの要素を取り出す
- 例
a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
b = a[2:5] # list a から index 2-5 番目の要素を list b に代入
print b
実行結果 -----------------------
[2, 3, 4]
リストの演算†
a = [ 0, 1, 2 ]
b = [ 5, 6, 7 ]
c = a + b
print c
実行結果 -----------------------
[0, 1, 2, 5, 6, 7]
- リストの終端にリストを追加する関数
a.extend( [4, 5, 6] )
要素の追加†
リストの掛け算†
- リストに掛け算を行うと、掛けた数だけ元のリストの要素が繰り返されたリストが出来上がる
a = [0,1,2]
a *= 3
print a
実行結果 -----------------------
[0, 1, 2, 0, 1, 2, 0, 1, 2]
リスト要素の書き換え†
- 書式
list_src[index] = new_val
- 例
a = [0,1,2,3,4]
a[3] = 100
print a
実行結果 -----------------------
[0, 1, 2, 100, 4]
要素の削除†
リスト要素の検索†
リストに存在するかどうかを調べる†
- 書式
<search-key> in src_list
- 例
names = ["Jan", "Zdeněk", "Víězslav", "Tomáš", "František", "Antonín" ]
if "Tomáš" in names:
print "True"
else:
print "False"
実行結果 -----------------------
True
リストの何番目の index にあるかを調べる†
- 書式
src_list.index(<search-key>)
- 例
names = ["Jan", "Zdeněk", "Víězslav", "Tomáš", "František", "Antonín" ]
i = names.index( "Antonín" )
print "Index of \"Antonín\" is:", i
j = names.index( "Bohuslav" )
print "Index of \"Bohuslav\" is:", j
実行結果 -----------------------
Index of "Antonín" is: 5
Traceback (most recent call last):
File "./list.py", line 65, in <module>
i = names.index( "Bohuslav" )
ValueError: 'Bohuslav' is not in list
- "Antonín" はリスト中に存在するので index 値が返ってくるが、存在しない "Bohuslav" を検索するとこのようにエラーが返ってくる
min / max†
- リスト要素内における最小・最大をそれぞれ検索する
a = [1, 2, 3, 4, 5]
amin = min( a )
amax = max( a )
print "min:", amin
print "max:", amax
実行結果 -----------------------
min: 1
max: 5
- リストの要素が数値だけなら問題ないが、文字列が含まれると想定外の結果が返ることがある
a = ['1', '2', '3', '4', '5', '10']
amax = max( a )
print "min:", amax
実行結果 -----------------------
max: 4
sort†
- 昇順:
list_val.sort()
- 降順:
list_val.reverse()
set 型†
dictionary†
フロー制御†
s = "snowsdutyrytrctyrhandwerwre";
if "hand" in s: # 文字列の要素を検索
print( "hand is found!" );
for†
for i in range(10, 21);
# 処理...
range()†
- 書式
range( [開始する数値,] 終了する数値 [,ステップ] );
- 例
range( 10, 21, 2 ); # 10から20まで、2づつ増える
- 条件の記述に使用出来る。
# 10 から 20 まで、2づつ増える
for i in range( 10, 20, 2 ):
class†
Link†
all†
on MacOSX†
on Windows†