[플데]데이터엔지니어링19기/파이썬

[1주차 파이썬 +3] 5장 제어문

혜o_n 2022. 12. 30. 17:27

 5.1 조건에 따라 분기하는 if문

 

조건에 따라 코드를 다르게 실행하고 싶을 떄는 if 문을 사용

 

    - 콜론(:) 과 들여쓰기로 코드의 구조를 결정

    - Tap  =  스페이스바(space) 4번

    - 들여쓰기를 잘못하면 에러가 발생

if <조건문1> :
    
    <코드블록1>
    
elif <조건문N> :

    <코드블록2>
    
else :   #생략가능

    <코드블록3>

    여기서 elif는 필요에 따라 여러개 사용할 수 있다.

 

* ㅇㅖ시 

 :  80점 이상에게는 Good, 90점 이상에게는 Very Good, 나머지 점수는 Bad를 출력하고 싶을 때

조건에 따라 if문을 사용하여 출력할 수 있다.

(x>=80) and (x<90) 처럼 쓸 수도 있지만 파이썬에서는 직관적으로 표현 가능하므로 80<=x<90 으로도 표현 가능

 

 

중첩 조건에 따른 분기

 

    - 조건문 안에 또 다른 조건문을 사용한 구조

if <조건문1> : 

        if <조건문1-1> :
      
              <코드블록1-1>
              
        else : 
                
                <코드블록1-2>
                
elif <조건문2> :
        
        <코드블록2>
        
else :

        <코드블록3>

    - 위에서는 2개의 중첩 조건문을 만들었지만 더 많은 중첩 조건문을 만들 수 있다.

 

* 예시

    중첩을 이용하여 90점 이상을 만족하는 가운데 100점이면 Perfect를 출력하게 조건을 추가할 수 있다.

 

* 코드블록을 나중에 구현하고 싶을 때는 pass를 활용

x = 85

if x >= 80 :
    pass
else : 
    print("Bad")

 

 5.2 지정된 범위만큼 반복하는 for문

 

지정된 횟수만큼 작업을 반복적으로 수행하는 구문

 

    - for문의 구조

for <반복변수> in <반복범위> :

        <코드블록>

    - 반복문을 이용하면 같은 코드를 반복해서 입력하지 않고 효율적으로 코드를 작성할 수 있다.

 

반복 범위 지정

 

- 리스트 이용

    - 문자열로 이루어진 리스트도 가능!

 

- range() 함수 이용

: range( star, stop, step )   =>   start보다 크거나 같고 stop보다 작은 숫자

    start는 생략하면 1, step은 1, stop은 정해줘야 한다.    

    - range()를 보고 싶을 때는 리스트 형태로 출력해야 한다.

    - for문에서 사용할 때는 in이라는 함수가 자연스럽게 range()를 list로 인식해준다

    - 양수가 아니어도 가능하다.

        조건식이 성립되지 않으면 빈 리스트를 반환한다.

 

중첩 for문

 

- if 와 같이 for문도 중첩이 가능하다.

for <반복 변수 1> in <반복 범위1> :

        for <반복 변수 2> in <반복 범위2> :
        
                <코드블록>

 

* 예시

- zip() 함수 이용해서 여러 개의 리스트 다루기

    zip() : 같은 길이의 데이터끼리 묶어준다.

 

 5.3 조건에 따라 반복하는 while문

 

while문은 조건에 따라 반복 여부를 결정

 

- while 뒤의 조건이 참이면 계속 실행하다가 거짓이 나오면 바로 중지

while  <조건문> :

        <코드블록>

* 예시

- 무한 반복문

while True :
	print('while Test')

    코드 블록을 무조건 계속 반복하라고 명령을 내려야 할 때 위와 같이 실행하면 무한 반복문이 만들어진다.

 

 5.4 반복문을 제어하는 break와 continue

 

반복문을 빠져나오는 break

 

k가 3보다 크면 break를 이용해 while문을 빠져나온다.

   다음 반복을 실행하는 continue

k=2일 때만 반복을 사용하고 싶지 않을 때 continue를 사용해 다음 반복을 진행

        - 특정 값, 조건에 대해서만 실행하고 싶지 않을 때 continue사용

 

 5.5 간단하게 반복하는 한 줄 for문

 

컴프리헨션(comprehension)의 기본 구조

# 리스트 컴프리헨션
[<반복실행문>  for  <반복변수>  in  <반복범위>]

# 조건문을 포함한 리스트 컴프리헨션
[<반복실행문>  for  <반복변수>  in  <반복범위>  if  <조건문>]

    * 파이썬에서만 지원해준다. 

리스트 컴프리헨션
조건문을 포함한 리스트 컴프리헨션

 

** 정리해보면 

지정된 반복 범위 내에서만 실행하고 싶을 때는 for문을,

조건문을 만족시킬 때만 반복하고 싶을 때는 while문을 사용하면 된다!