ユニークなpythonループ文

1942 ワード

1、局所変数

for i in range(5):
  print i,

print i,


実行結果:
0 1 2 3 4 4
iはfor文のローカル変数です.しかしpythonでは、同じメソッド内で、メソッドボディが終了するまで行を定義するローカル変数が定義されています.
他のプログラミング言語では、iが定義されていないため、「print i」の文は間違っています.
例1:

def func():
  a = 100
  if a > 50:
    b = True
  print b

if __name__ == '__main__':
  func()


結果:
True
例2:

def func():
  a = 100
  if a > 50:
    b = True
  print b

if __name__ == '__main__':
  func()
  print b


最後の行に誤りがあり、bを定義していないため、func()メソッドのbは関数体内の局所変数であるため、mainの中の「print b」に誤りがある.
2、pythonのforループ制御文
例1:

for i in range(5):
  for j in range(6):
    print (i,j),
  print

実行結果:
(0, 0) (0, 1) (0, 2) (0, 3) (0, 4) (0, 5)
(1, 0) (1, 1) (1, 2) (1, 3) (1, 4) (1, 5)
(2, 0) (2, 1) (2, 2) (2, 3) (2, 4) (2, 5)
(3, 0) (3, 1) (3, 2) (3, 3) (3, 4) (3, 5)
(4, 0) (4, 1) (4, 2) (4, 3) (4, 4) (4, 5)
例2:
[50100]の間の質数を求めます

import math
cout = 0
for i in range(50,100+1):
  for j in range(2,int(math.sqrt(i))+1):
    if i % j == 0:
      break
  else:
    print i,
    cout +=1
    if cout % 10 == 0:
      cout = 0
      print
    #break #     break,      forbreak,      else    for     

実行結果:
53 59 61 67 71 73 79 83 89 97
解析:
for文はpythonのループ制御文です.オブジェクトを巡回するために使用できます.オプションのelseブロックもあり、主にfor文にbreak文が含まれていることを処理するために使用されます.
forループがbreakで終了しない場合、elseの文が実行されます.for必要に応じてforサイクルを終了します.
for文のフォーマットは次のとおりです.

for <> in :
  if :
    break
  if :
    continue
  
else:
  <...>