ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PlayData - Day 3] if 제어문, for / while 반복문
    [플레이데이터] 2022. 12. 21. 16:39

    1. K-Digital Training 과정

    • 빅데이터 기반 지능형SW 및 MLOps 개발자 양성과정 19기 (Day 3)

     

    2. 목차

    1. 제어문: 조건에 따르는 if문
    2. 반복문: 지정된 범위만큼 반복하는 for문
    3. 반복문: 조건에 따라 반복하는 while문
    4. 반복문을 제어하는 break와 continue
    5. 간단하게 반복하는 한 줄 for문 + if문

     

    3. 수업 내용

     

    1. 제어문: 조건에 따르는 if문

    • 단일 조건에 따른 분기
    x=95
    if x >= 90:
        print("pass")
        
    > pass
    • 단일 조건 및 그 외 조건에 따른 if문
    x = 75
    if x>=90:
        print("Pass")
    else:
        print("Fail")
        
    > Fail
    
    x = 85
    if x >= 90:
        print("Very Good")
    elif (x>=80) and (x<90):
        print("Good")
    else:
        print("Bad")
        
    > Good
    
    x = 85
    if x >= 90:
        print("Very Good")
    elif 80 <= x < 90:
        print("Good")
    else:
        print("Bad")
        
    > Good
    • 중첩 조건에 따른 분기
    x = 100
    if x >= 90:
        if x==100:
            print("Perfect")
        else:
            print("Very Good")
    elif 80 <= x < 90:
        print("Good")
    else:
        print("Bad")
        
    > Perfect
    
    # 나중에 구현하고 싶을 때는 Pass를 활용
    x = 75
    if x >= 80:
        pass
    else:
        print("Bad")
        
    > Bad

     

    2. 반복문: 지정된 범위만큼 반복하는 for문

    • 반복문의 필요성
    a = 0     # 변수 a를 0으로 초기화
    print(a)  # 변수 a 출력
    
    a = a + 1 # 변수 a에 1을 더한 후, 다시 a에 대입
    print(a)  # 변수 a 출력
    
    a = a + 1 # 같은 코드 반복
    print(a)
    
    a = a + 1 # 같은 코드 반복
    print(a)
    
    a = a + 1 # 같은 코드 반복
    print(a)
    
    a = a + 1 # 같은 코드 반복
    print(a)
    
    > 0
    > 1
    > 2
    > 3
    > 4
    > 5
    
    # 리스트를 이용한 for문
    for a in [0,1,2,3,4,5]:
        print(a)
        
    > 0
    > 1
    > 2
    > 3
    > 4
    > 5
    
    myFriends = ['James', 'Robert', 'Lisa', 'Mary']
    for myFriend in myFriends:
        print(myFriend)
        
    > James
    > Robert
    > Lisa
    > Mary
    • range() 함수 활용: range(start, stop, step)
    # 리스트 형태로 출력해야한다
    print(list(range(0,10,1)))
     
    > [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    print(list(range(1,10,2)))
    
    > [1, 3, 5, 7, 9]
    
    # 반복문에 range() 함수 활용
    for a in range(0,6,1):
        print(a)
        
    > 0
    > 1
    > 2
    > 3
    > 4
    > 5
    • 중첩 for 문
    x_list = ['x1', 'x2']
    y_list = ['y1', 'y2']
    
    print(' x  y')
    for x in x_list:
        for y in y_list:
            print(x, y)
            
    >  x  y
    > x1 y1                # x for문의 첫번째, y for문의 첫번째
    > x1 y2                # x for문의 첫번째, y for문의 두번째(x for문 끝)
    > x2 y1                # x for문의 두번째, y for문의 첫번째
    > x2 y2                # x for문의 두번째, y for문의 두번째
    • 여러 개의 리스트 다루기
    names = ['James', 'Robert', 'Lisa', 'Mary']
    scores = [95, 96, 97, 94]
    
    for k in range(len(names)): # len: 리스트의 길이
        print(names[k], '\t', scores[k])
        
    > James 	95
    > Robert 	96
    > Lisa		97
    > Mary		94
    
    for name, score in zip(names, scores): # zip: 같은 위치의 데이터끼리 묶어준다
        print(name, '\t', score)
        
    > James 	95
    > Robert 	96
    > Lisa		97
    > Mary		94
    
    a = zip(names, scores)
    print(a, '\n', id(a), '\n', list(a))
    
    > <zip object at 0x00000208EFB457C0> 
    > 2237404567488 
    > [('James', 95), ('Robert', 96), ('Lisa', 97), ('Mary', 94)]

     

    3. 조건에 따라 반복하는 while문

    • while문의 구조
    i = 0     # 초기화
    sum = 0   # 초기화
    
    print("i sum")
    while sum < 20:    # 조건 검사
        i = i+1        # i를 1씩 증가
        sum = sum +i   # sum과 현재 i를 더해서 sum을 갱신
        print(i, sum)
        
    > i sum
    > 1 1
    > 2 3
    > 3 6
    > 4 10
    > 5 15
    > 6 21

     

    4. 반복문을 제어하는 break와 continue

    • 반복문을 빠져나오는 break
    k=0
    while True:
        k = k + 1 # k는 1씩 증가
        
        if k > 3: # k가 3보다 크면
            break # break로 while문을 빠져나옴
            
        print(k)   # k 출력
        
    > 1
    > 2
    > 3
    
    for k in range(10):
        if k > 2:      # k가 2보다 크면
            break      # break로 for문을 빠져나옴
        print(k)
        
    > 0
    > 1
    > 2
    • 다음 반복을 실행하는 continue (건너뛰기)
    for k in range(5):
        if k == 2:
            continue
            
        print(k)
        
    > 0
    > 1
    > 3
    > 4
    
    k = 0
    while True:
        k+=1
        
        if k == 2:
            print("continue next")
            continue
        if k > 4:
            break
            
        print(k)
        
    > 1
    > continue next
    > 3
    > 4

     

    5. 간단하게 반복하는 한 줄 for문

    • 컴프리헨션(comprehension)의 기본 구조
    • 리스트 컴프리헨션
      [<반복실행문> for <반복변수> in <반복범위>]
    #### 일반 for문
    numbers = [1,2,3,4,5]
    square = []
    
    for i in numbers:
        square.append(i**2)
        
    print(square)
    
    > [1, 4, 9, 16, 25]
    
    #### 컴프리헨션
    numbers = [1,2,3,4,5]
    square = [i**2 for i in numbers]
    print(square)
    
    > [1, 4, 9, 16, 25]
    • 조건문을 포함한 컴프리헨션
    • [<반복실행문> for <반복변수> in <반복범위> if <조건문>]
    #### 일반 for문 + if문
    numbers = [1,2,3,4,5]
    square = []
    
    for i in numbers:
        if i >= 3:
            square.append(i**2)
        
    print(square)
    
    > [9, 16, 25]
    
    #### 컴프리헨션
    numbers = [1,2,3,4,5]
    square = [i**2 for i in numbers if i >= 3]
    print(square)
    
    > [9, 16, 25]

    댓글

Designed by Tistory.