ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 06일차 수업 정리_while, for, range, 이중 for문, 기타제어문
    Python 2024. 1. 31. 15:18

    - 05일차 복습

    - while

    - for

    - range()

    - 이중 for문(중첩 for문)

    - 기타제어문

     


    - 05일차 복습

     

    조건문이란 특정 조건의 만족 여부(결과)에 따라 실행하는 것

     

    if문 if ~ else if ~ elif ~ else
    if 조건식 :
         조건식이 참일 때 실행되는 문장
    if 조건식 :
         조건식이 참일 때 실행되는 문장
    else:
         조건이 거짓일 때 실행되는 문장
    if 조건식1 :
         조건식1이 참일 때 실행되는 문장
    elif 조건식2 :
         1이 거짓이고 2가참일 때 실행되는 문장
    else:
         위 조건들이 거짓일 때 실행되는 문장

    - while

    반복문 : while, for, range(), 이중 forans(중첩 for문), 기타제어문

     

    while문은 특정 조건을 만족하는 동안 반복해서 실행.

    while True : 무한 루프. 조건신의 결과가 참 일 동안 반복 실행.

     

    while 조건식 :

            (tab필수)반복할 문장

    # 1) while 뒤에 조건식이 참인지 거짓인지 판별
    # 2) 조건식이 참이라면 while문 안의 반복할 문장들 실행. 거짓미아면 반복문 종료
    # 3) while문 안의 반복할 문장 한번쯤 실행 -> 
        print("Hello python") # 반복할 문장
        break # break문이란 반복분의 종료(즉시 탈출)
    print("while문 끝") #반복할 문장 아님!, while문 바깥의 문장
    더보기

    Hello python 

    while문 끝

     

    예제> 1시에 시작해서 7시가 되면 '알람이 울리는' 프로그램 만들기

    # <풀이1> 무한 반복문 사용
    time = 1
    while True : 
        if time < 7 :
            print(f"{time}시")
            time += 1             
        else:
            print(f"{time}시가 되었습니다 알람이 울립니다")
            break # 반복문 강제 종료
            
    
    # <풀이2> while 조건식 사용
    time = 1
    while time < 7 : 
        print(f"{time}시")
        time += 1
    print(f"{time}시가 되었습니다. 알람이 울립니다")
    더보기

    1시 

    2시 

    3시 

    4시 

    5시 

    6시 

    7시가 되었습니다 알람이 울립니다

     

    예제>
    # 1부터 10까지 입력받고 입력받은 숫자가 1 ~ 10 사이의 숫자라면 숫자 출력 반복문 탈출
    # 그게 아니라면 1 ~ 10 사이의 숫자를 다시 입력해주세요 출력 다시 숫자 입력 받도록 하기

    while True : 
        num = int(input("숫자 입력 : "))    # num 이라는 변수에 정수형 입력 받은 숫자 대입
        if 0 < num <= 10 :                  # num 이 1 ~ 10 사이의 값이라면
            print(f"num = {num}")           # if문 안의 문장 출력
            break                           # 반복문 탈출
        else:                               # if 문 조건이 거짓이라면 
            print("잘못된 숫자입니다. 다시 입력하세요")  #else 문 안의 문장 출력
    더보기

    숫자 입력 : 60 

    잘못된 숫자입니다. 다시 입력하세요 

    숫자 입력 : 5 

    num = 5

     


    - for

     

    for문은 범위/횟수가 정해져 있는 동안 반복해서 실행.

     

    for 변수명 in 집합:

            (tab필수)반복할 문장

     

    변수명 = 카운터 변수, 집합 = 문자열, 컬렉션(리스트, 튜플, 세트, 딕셔너리), range()

    str1 = "안녕하세요"
    print(str1, type(str1))
    
    # for 변수명 in 집합 :
    
    for i in str1 : 
        print(i)
    
    for i in "hello pyyhon" :
        print(i, end=" ")
    print() # 줄바꿈
    
    li1 = ['문자열', '문자', 1, 5.3, True]
    print(li1, type(li1))
    for i in li1 : 
        print(i, type(i))
    
    tu1 = ("문자열들", "문자", 1, 5.3, True) #튜플의 패킹
    print(tu1, type(tu1)) #튜플의 패킹
    for i in tu1 : 
        print(i, type(i))
    
    set1 = {'봄', '여름', '가을', '겨울'}
    for i in set1 :
        print(i)
    더보기

    안녕하세요 <class 'str'> 

    안 녕 하 세 요 h e l l o   p y y h o n 

    ['문자열', '문자', 1, 5.3, True] <class 'list'> 

    문자열 <class 'str'> 

    문자 <class 'str'> 

    1 <class 'int'> 

    5.3 <class 'float'> 

    True <class 'bool'> 

    ('문자열들', '문자', 1, 5.3, True) <class 'tuple'> 

    문자열들 <class 'str'> 

    문자 <class 'str'> 

    1 <class 'int'> 

    5.3 <class 'float'> 

    True <class 'bool'> 

    여름 봄 가을 겨울

     

    for과 튜플의 패킹 & 언패킹 사용하는 법

    li2 = [(1, 2), (3, 4), (6, 6)]  # 리스트 안에 튜플
    print(li2, type(li2))
    
    for i in li2:
        print(i, type(i))
    
    # 튜플의 언패킹
    for i,j in li2:
        print(f"i : {i}, j : {j}")
    더보기

    [(1, 2), (3, 4), (6, 6)] <class 'list'> 

    (1, 2) <class 'tuple'> 

    (3, 4) <class 'tuple'> 

    (6, 6) <class 'tuple'> 

    i : 1, j : 2

    i : 3, j : 4

    i : 6, j : 6

     


    - range()

     

    range()란 내가 필요한 만큼 어디부터 어디까지 하면 만들어주는 기능을 가진 함수 == 연속된 정수형

     

    range(시작값, 종료값, 스텝값) == 슬라이싱

    ex) range( 1, 10, 2) => 1, 3, 5, 7, 9

     

    range(시작값, 종료값) == range(2, 8) => 2 ~ 7 

     

    range(종료값) == range(7) => 0 ~ 6

     

    종료값은 -1만큼 가져온다. 

     

    for과 range()

    for i in range(시작값, 종료값, 스텝값):

    i라는 변수에 시작값 부터 종료값(-1)까지 범위동안 스텝값 만큼 반복하며 증가하는 int값을 담는다. 

    for i in range(1, 20) : # 1 ~ 19
      print(i, end=' ')
    print() #줄바꿈
    
    for i in range(1, 30, 3) :
        print(i , end=" ")
    print()
    
    for i in range(5) : # "안녕!" 5번 출력
        print("안녕!")

     

     

    예제> 3단 구구단 만들기

    # 3단 구구단 만들기 / 3은 변하지 않고 곱해지는 숫자는 1~9
    
    # 단수 저장할 변수 선언
    dan = 3
    for i in range(1, 10) :
        print(f"{dan} x {i} = {dan*i}")

     

     

    <실습> 틀렸었음

    # <실습>
    # 1에서 10까지의 숫자 합 구하기
    # for 문 사용
    # 출력결과 "합 : 55"
    
    # 쓰앵님 답
    
    # 1 ~ 10까지의 정수를 더한 값을 저장할 변수 선언
    sum = 0
    
    for i in range(1, 11):
        # print(i)
        sum += i # sum = sum + i # 0 + 1 
        #print(sum)
    print(f"합 : {sum}")

     

     


    - 이중 for문(중첩 for문)

     

    for문 안에 for문 : 하나의 for문 내에서 또 다른 for문을 사용

     

    for 변수1 in 집합 :

           for 변수2 in 집합 :

                    실행할 코드

    # 이중 for문(중첩 for문)
    for i in range(3) : # 바깥 for 문 0 ~ 2
      for j in range(3) : #안쪽 for 문 0~ 2
          print(f"i : {i}, j , {j}")

     

    이것으로 구구단 만들기도 가능

    for i in range(2, 10):
        for j in range(1, 10):
            print(f"{i} x {j} = {i*j}")
    
    '''
    쓰앵님 답
    # 바깥쪽 for문 단수표현
    # 안쪽 for문 곱해주는 숫자
    
    for dan in range(2, 10) :
        print(f"======{dan}단======")  #단끼리 정리하여 표현
        for i in range(1, 10):
            print(f"{dan} x {i} = {dan * i}")
            '''

     

     


    - 기타제어문

    break문 처리 흐름을 강제적으로 종료하고 그 블록에서 나가는 구문
    continue문 블록 내의 처리를 건너뛰고 블록 앞부분 위치로 돌아가서 다음 처리를 계속하는 구문
    바로 다음 순번의 loop(반복)를 실행/수행함 (ex. 369게임)
    pass문 실행할 코드가 딱히 없으면 다음 행동을 계속 진행하게 하는 기능

     

     

    2024.01.31

연의 취업 도전기.