プログラムの基礎が分かる僕がPythonを学んでみる(その4)


今回は制御文です。

IF文で、C言語と違うのは、elifがあるところです。

a = 3

if a > 5:
  print("large")
elif a <= 5 and a > 2:
  print("middle")
else:
  print("small")

を実行すると、

middle

という結果が得られます。elifにはelse if の効果があります。
あと、論理演算子は、and,or,notが使えます。

次は、while文ですが、while文のあとにelseが付けられます。

a = 0
while a < 5:
  print(a)
  a += 1
else:
  print ("LOOP FINISHED")

を実行すると、

0
1
2
3
4
LOOP FINISHED

と表示されます。

FOR文は、リストなどを使う場合については、既にみたとおりです。
ここでは、2つのサンプルを上げておきます。
FOR文にもelseが付けられます。

for a in [1,2,3]:
  print(a)
else:
  print("LOOP FINISHED")

を実行すると、

1
2
3
LOOP FINISHED

と表示され、

n = 5
for a in range(n):
  print(a)
else:
  print("LOOP FINISHED")

を実行すると、

0
1
2
3
4
LOOP FINISHED

と表示されます。range(5)で、5回実行するという条件になります。

breakとcontinueは、C言語と同じように使えるみたいですね。
あとは、Javaと同じような例外処理も実装できますね。

a = "TODAY"
try:
  print(a[7])
except IOError:
  print("IOError")
except IndexError:
  print("IndexError")
except:
  print("OtherError")
else:
  print("NoException")
finally:
  print("Finally")

を実行すると、IndexErrorがおきて

IndexError
Finally

と表示されます。この辺は、Javaの実装から来てるので、Cしか知らない人はとりあえずスルーでもいいかもしれません。
Pythonの例外処理って実際にはどのくらい使われてるのかわかりませんが、まだであったことないです。

with構文というのがありますが、いらないような気がします。
普通に実装すればいいと思うので、省略。
知りたい人は調べてください(笑)

assert文は、役に立つ機能だと思います。
テストのときに値を確かめるための構文で、__debug__がTrueのときだけ動作するみたいです。
python -O xxx.pyと実行すると、デバッグモードではなくなるみたいですね。

try:
a = 5
assert a == 4
except AssertionError:
  print("wrong")
finally:
  print("finished")

を実行すると、

AssertionError例外が発生して、

wrong
finished

と表示されます。

とりあえずは、制御文としては、このくらいですかねー。
他は、exec文とか気になりますが、現実的にはあまり使いそうにない気もします。
簡単に言うと、文字列にプログラムを打ち込んで、それを実行させるというもの。

a="print('Hello World!')"
exec(a)

で、

Hello World!

が表示されます。
プログラムを動的に生成するってのはかなり上級な感じがしますねー。

今日のところはここまで。
次は関数の定義に関して学びます。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする