パイソンコーチングスタッフ第1期-全員のためのパイソン(PY 4 E)5強(繰り返し)


5.繰り返し文


コンピューターは人より似たような仕事を繰り返すのが得意だ.繰り返しはよくあることで、Pythonはいくつかの繰り返し文機能を提供し、繰り返し作業を容易にします.

➰1. while文(不確定ループ;不確定ループ)

n = 5

while n > 0: # n이 0보다 크면 반복
    print(n)
    n = n - 1 

print('Blastoff!')
print(n)

# 결과
5
4
3
2
1
Blassoff!
0
  • while文条件に真の値がある場合、while文の下にインデントされた文は、条件が偽になるまでコードを繰り返し実行します.
  • nが0より大きい場合、while文は実行を続行します.n=5であるためwhile文の条件を満たすため,繰返し文を実行する.n=0の場合、while文の条件が満たされないため、重複文は終了します.
    次の: (콜론)を書くのを忘れないでください.

    -ループを制御する-break

    while True:
        line = input('> ') 
        if line == 'done': # 만약 line이 'done'이면
            break # 반복문 빠져나오기
        print(line)
    print('Done!')
    
    # 결과
    # > hello there로 입력
    # hello there로 출력됨
    # > finished로 입력
    # finished로 출력됨
    # > done로 입력
    # Done!으로 출력됨
  • 複文を使用し、いくつかの条件の下で、複文を終了したい場合があります.この場合、breakゲートを使用することができる.
  • ループがbreakに遭遇すると、ループは実行を停止し、while文の終了後のコードを検索して実行します.

  • - continue

  • は、ループの真ん中で繰り返しを終了し、すぐに次のループにジャンプしたい場合がある.continueゲートを使用して、サイクル全体を終了することなく次のサイクルをスキップします.
  • while True:
        line = input('> ')
        if line[0] == '#' : # 입력단어 첫 번째가 #이라면 
            continue # 다음 코드를 실행 하지않고 loop 시작점으로 감
        if line == 'done' :
            break
        print(line)
    print('Done!')
    
    # 결과
    # > hello there 입력
    # hello there로 출력
    # # don't print this 
    # > print this! 입력
    # print this!로 출력
    # > done 입력
    # Done!
  • の上のコードに「#」と入力すると、continueに遭遇し、continueはループの開始点に戻り、ループを実行します.(出力なし)
  • doneを入力すると、breakに遭遇し、breakはループ終了点に続くコードを実行します.(Done!出力)

  • while文は、条件文が偽であるまで実行されるため、「不確定ループ」と呼ばれます.
    コードの長さが長くなり、終了条件が複雑になると、コードが本当に終了できるかどうかは判断されません.文を利用していろいろなことができますが、ほとんどの重複文を生成するために、確定ループと呼ばれる文が使われています.

    ➿ 2. for文(ループを決定する;ループを決定する)


    ループ
  • Python for文を使用して、セット内の各アイテムに対して重複文を実行するループ
  • を作成できます.
  • で決定されたアイテムセットに対して実行され、「決定ループ」と呼ばれます.
  • 決定ループは、集合中の要素を介して
  • を繰り返す.
  • 数値リスト
  • for i in [5, 4, 3, 2, 1] :
        print(i)
    print('Blastoff!')
    
    # 결과
    5
    4
    3
    2
    1
    Blastoff!

    重複変数iは、演算子を含むinを使用して、リスト[5,4,3,2,1]の順にインデックスを作成する.つまり、5 4 3 2 1が出力となります.
  • 文字列リスト
  • friends = ['Connect', 'Korea', 'NHN']
    for friend in friends:
        print('Happy New Year!! ', friend)
    print('Done!')
    
    # 결과
    Happy New Year!!  Connect
    Happy New Year!!  Korea
    Happy New Year!!  NHN
    Done!
    文字列では、同様にinを使用してfriendという重複変数をfriendsリストに順次インデックスします.

    👓 繰り返し文の適用

  • 最大値
  • を求める
    largest_so_far = -1 # 작은 수로 -1로 선언
    print('Before', largest_so_far) # 최초의 값과 루프 이후의 값을 비교하기 위해 print 함수로 현재의 값을 확인
    numbers = [9, 41, 12, 3, 74, 15] # numbers라는 int를 원소로 가지는 list를 선언
    for the_num in numbers
        if the_num > largest_so_far : # 현재의 값(the_num)이 현재 가장 큰 값이 할당 되어 있는 largest_so_far보다 크다면
            largest_so_far = the_num # largest_so_far의 값을 the_num으로 바꿔줌
        print('largest_so_far: ', largest_so_far, 'current number: ',the_num)
    
    print('After', largest_so_far)
    
    Before -1
    largest_so_far:  9 current number:  9
    largest_so_far:  41 current number:  41
    largest_so_far:  41 current number:  12
    largest_so_far:  41 current number:  3
    largest_so_far:  74 current number:  74
    largest_so_far:  74 current number:  15
    After 74

    1.サイクル数の使用

  • リストの要素を理解するには、
  • を使用します.
    zork = 0
    print('Before', zork)
    numbers = [9, 41, 12, 3, 74, 15]
    for thing in numbers :
        zork = zork + 1
        print(zork, thing)
    print('After', zork)
    
    # 결과
    Before 0
    1 9
    2 41
    3 12
    4 3
    5 74
    6 15After 6

    2.リングを使用して和を求める

  • の各要素を累計すると、合計が得られます.
  • zork = 0
    print('Before', zork)
    numbers = [9, 41, 12, 3, 74, 15] 
    for thing in numbers :
        zork = zork + thing
        print(zork, thing)
    print('After', zork)
    
    # 결과
    Before 0
    9 9
    50 41
    62 12
    65 3
    139 74
    154 15
    After 154

    3.ループを使用して平均値を求める

  • 要素の数と合計を用いて平均値を求めることができる.
  • count = 0 # 평균을 전체 원소의 수로 나누기 위해 total number를 확인합니다.
    sum = 0
    print('Before', count, sum)
    numbers = [9, 41, 12, 3, 74, 15] 
    for value in numbers :
        count = count + 1
        sum = sum + value
        print(count, sum, value)
    print('After', count, sum, sum/count)
    
    
    # 결과
    Before 0 0
    1 9 9
    2 50 41
    3 62 12
    4 65 3
    5 139 74
    6 154 15
    After 6 154 25.666666666666668

    4.ループフィルタを使用

  • if文を使用すると、印刷によって特定の値より大きい数値を表示できます.
  • print('Before')
    numbers = [9, 41, 12, 3, 74, 15]
    for value in numbers :
        if value > 20:
            print('Large number', value)
    print('After')
    
    # 결과
    Before
    Large number 41
    Large number 74
    After

    5.ブール値を使用して特定の値を検索

  • ブール変数を使用して、リスト内の特定の値を検索できます.
  • ブール変数は真または偽の値を有する.
  • found = False
    print('Before', found)
    numbers = [9, 41, 12, 3, 74, 15]
    for value in numbers :
        if value == 3 :
            found = True
            print(found, value)
            break
    print('After', found)
    
    # 결과
    Before False
    True 3
    After True

    6.最小数のコードの検索を完了

  • の最小数のループを探すために、None資料型を理解する必要があります.Noneは無価です.空の箱にこの箱が空であることを明確に示すと思います.
  • さらに、isおよびis notの演算子は、データ型と値とが同時にTrueを返す.たとえば、0==0.0はTrue、0 is 0.0はFalseです.値は同じですが、前者はint、後者はintです. float そうですから.
  • smallest = None
    print('Before')
    numbers = [9, 41, 12, 3, 74, 15]
    for value in numbers :
        if smallest is None :
            smallest = value
        elif value < smallest :
            smallest = value
        print(smallest, value)
    print('After', smallest)
    
    # 결과
    Before
    9 9
    9 41
    9 12
    3 3
    3 74
    3 15
    After 3

    📗 リファレンス


    全員向けPython(PY 4 E)