2018-07-19 pythonループ文

3651 ワード

ループの概念は、プロシージャを繰り返し実行する必要があり、ループを使用することができます.
pythonのループにはforループとwhileループがあります
1.forサイクル
#  
for     in   :
       

for:    

変数名:変数を宣言するときの変数名の要件と同じで、機能は値in:キーワードを格納し、..コンテナタイプのデータ.文字列、リスト、辞書、元祖、コレクションなどのループ:繰り返し実行されるコードブロック
実行プロセス:変数を使用してシーケンスからデータを取り出し、1つずつ取り、取り終わるまで.値を1つとるごとに、順次循環体を実行します
for char in 'ab12':
    print(char)
    print('!')

結果:a!b ! 1 ! 2 !
2.range関数
xrangeはpython 2.xの関数で、python 3.xではrange関数を使用して置き換えられます.
range機能は、指定された範囲の数値シーケンスを生成します.一般的にforサイクルで用いられ,サイクル回数を制御する.またはインデックス値を生成
range(n):0~n-1を生成する整数シーケンスrange(m,n):m~n-1を生成する整数シーケンスrange(m,n,step):mからstepを加えるたびにnの前まで次の数字が生成される
例:range(10):0,1,2,3,4,5,6,7,8,9の数字を生成
for x in range(10):
    print(x)

print('=======')

# range(10,20):    :10~19
for x in range(10,20):
    print(x)

range(0,10,2):生成数:0,2,4,6,8
for x in range(0,10,2):
    print(x)

例:計算1+2+3+...+100
sum1 = 0   #          
for x in range(1,101):
    sum1 += x

print(sum1)


例:1つのループのみを使用
1.計算1 x 2 x 3 x..x 10 2.計算2 x 4 x 6 x...x 10
mul1 = 1  #           
mul2 = 1

#     1-10      
for x in range(1,11):
    mul1 *= x  # mul1 = mul1*x

    #   x     
    if x % 2 == 0:
        mul2 *= x
print(mul1)
print(mul2)

例2:文字列「abcdef」があり、文字列の偶数ビット(下付き値は偶数)上の文字を順次取り出す
str1 = 'abcdef'

#    :
#               
# index = 0,2,4
for index in range(0,len(str1),2):
    print(str1[index])


#    :
#                
for index in range(0,len(str1)):
    #          
    if index % 2 == 0:
        print(str1[index])
    

#    :
index = 0
for char in str1:
    if index % 2 ==0:
        print(char)
    index += 1

2.whileサイクル
#  :
while     :
       

    

while:キーワード条件文:結果はTrue、またはFalseループ:繰り返し実行されるコードセグメント
実行プロセス:条件文がTrueであるかどうかを判断し、Trueである場合はループを実行します.ループを実行し、条件文がTrueであるか否かを判断し、Trueであればループを実行する....条件文の値がFalseになるまでループが終了し、whileループの後の文を直接実行する
注意:条件文の結果が常にTrueの場合、デッドループが発生します.循環体には循環を終了させる操作が必要です
ps:pythonにdo-whileループはありません
例:whileサイクルを用いて1+2+3+...+100を計算する
number = 1  #     1-100
sum1 = 0  #    
while number <= 100:
    print(number)
    sum1 += number

    #      number  1
    number += 1

print(sum1)

例:計算2+4+6+...100
number = 2
sum2 = 0
while number <= 100:
    sum2 += number
    number += 2

print(sum2,number)

3.breakとcontinue
breakとcontinueの2つのキーワードは,いずれも役割ドメインループの中でループを終了するために用いられる.
continue:キーワードは、循環体の中でcontinueに遭遇すると、そのループを終了し、そのまま次のループに入る判断(forループであれば変数に次の値を取りに行かせる.whileループであればwhileの後の条件文がTrueであるか否かを判断する)
#  
for x in range(5):
    print(x)
    continue   #    continue     ,   x     
    print('====')

結果:0 1 2 3 4
#  :
for x in range(10):
    print(x)
    break
    print('======')
print('!!!!')

結果:0!!!!
適用:
条件文の値を変更してループを終了
numer = 1
while numer <= 100:
    print(numer)
    numer += 1

breakを使用してデッドサイクルを終了
numer = 1
while True:
    if numer > 100:
        break
    print('==:',numer)

    numer += 1

例:100-1000以内で最初に3で割り切れると同時に17で割り切れる数を探し出す
for x in range(100,1001):
    if x%3==0 and x%17==0:
        print(x)
        #              
        break

3.forとwhileの選択
forサイクルのサイクル数は決定され、whiteサイクルのサイクル数は不確定であってもよい
1.サイクル数が不確定な場合はwhileサイクルを選択します.回数決定は一般的にforループを用いる2.1つのシーケンスの値をループすることにより、forループを用いる