制御文


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

制御文とはプログラムの流れを変えるための文です。

if文

IronPythonは根がC#なので、日本語が使えちゃうので、

甘えて次のようなプログラムを打ってみると、

動作がわかりやすくなるかと思います。

条件=True

def 実行文():
  print '実行された!'

if 条件:
  実行文()

もし条件がTrueだった場合、if文のブロックを実行します。

じゃあ条件=Falseとして次の文も実行してみてください。

条件=False

def 実行文():
  print '実行された!'

if 条件:
  実行文()

というわけで実行されません。

また、条件=0という場合、条件=Noneという場合も実行されません。

ここはPythonという言語の穴になるかと思うので覚えておいてください。

for文

for x in リスト:
  繰り返し処理(x)

リストからリストの要素xが取り出され、

ブロック内に渡されます。

ブロック内ではxを利用して何らかの処理を行います。

xの値がたとえば、文字列だったり、数字だったりするときは、

それを加工しても元のリストには影響が一切加わりません。

そういう場合は新しくリストを作り直す必要があります。

新しいリスト=[]
for x in リスト:
  新しいデータ = 繰り返し処理(x)
  新しいリスト.append(新しいデータ)

こんな感じ。

ただ、この書き方はPythonっぽくないって言われるみたいです。

何でかはPythonチュートリアルを読みましょう。


C言語から来たカウンタループ人間にとっては慣れないと思います。

C++まで行ったイテレータ人間にならさっくりなじむかと。

while文

while文は次のように使います。

while True:
  print 'hoge'

条件がTrueのうちは続けます。上のプログラムは無限ループです。残念でした。

無限ループを抜けるには、ループの中にbreak文を仕込んでおきましょう。

たとえばカウンターを作って、それが10になったらループをおしまいにするプログラムを組んでみます。

count=0
while True:
  count+=1
  if count == 10:
    break
  print 'hoge'

こんな感じです。

だいぶ新しいことをやってしまいましたが、まだ大丈夫でしょう。

count += 1

の+=は"追加する"という意味です。

countという変数に1追加します。

count == 10

はcountが10だったらTrueを返します。


カウンタループ

range関数を利用してループを組むと、カウンタループになります。

for x in range(10):
  print x

要素数が多い時はxrange関数を利用したほうが高速らしいです。

IronPythonでないCPythonの3.xでは言語思想にのっとり、

xrangeとrangeはrangeに統一されました。

for x in xrange(100):
  print x

enumerate関数を使うと、カウンタとitemイテレータを同時に利用できます。

for counter,item in enumerate(['a','i','u','e','o']):
  print counter
  print item