金宏和實 Writer's Page
日経ソフトウエア誌を中心にライター活動をしている金宏和實の雑記帳のようなページです。

Jamp to Navigation


金宏和實 Writer's Page

Python

While文にelseがあるんだぜ

while a > 0:
  print a,
  a -=1
else:
  print 'Loop終わったぜ'
While文にelseがあるのにはビックリ。
実行結果↓
10 9 8 7 6 5 4 3 2 1 Loop終わったぜ

ただし,breakで抜けた場合は,else以降は実行されない。
考えてみると,elseは便利な仕様です。

Comment(0) Permalink

ブロックの区切りはインデント(字下げ)

Pythonではブロックの区切りはインデント(字下げ)で行う。
同じブロックに属するステートメントは同じだけ字下げされている。

Comment(0) Permalink

x += 1はOK,x++はだめ

x += 1やx -= 1はOK,x++や--xはだめ
こんなんも↓できる
L = [1,2,3,4,5]
L += [6,7]
L
[1, 2, 3, 4, 5, 6, 7]

Comment(0) Permalink

ディクショナリ

table = {'python': 'Guido',
     'perl': 'Larry',
     'Ruby': 'Hiro'}
lang = 'Ruby'
creater =table[lang]
creater
'Hiro'

for lang in table.keys():
     print lang, '\t', table[lang]

python Guido
Ruby Hiro
perl Larry

順序は不定
ハッシング効率のために並べ替えられる
一度の出力結果をあてにしてはいけない

Comment(0) Permalink

リストの縮小

L1=[1,2,3,4]
とリストを作成し,
del L1[0]
とすると
[2, 3, 4]
となる。
先頭しか削除できないわけではなく,再度
del L1[1]
とすると,次のようになる。
[2, 4]

これはめずらしい仕様!

Comment(0) Permalink