[1주차 파이썬 +3] 5장 제어문
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
다음 반복을 실행하는 continue
- 특정 값, 조건에 대해서만 실행하고 싶지 않을 때 continue사용
5.5 간단하게 반복하는 한 줄 for문
컴프리헨션(comprehension)의 기본 구조
# 리스트 컴프리헨션
[<반복실행문> for <반복변수> in <반복범위>]
# 조건문을 포함한 리스트 컴프리헨션
[<반복실행문> for <반복변수> in <반복범위> if <조건문>]
* 파이썬에서만 지원해준다.
** 정리해보면
지정된 반복 범위 내에서만 실행하고 싶을 때는 for문을,
조건문을 만족시킬 때만 반복하고 싶을 때는 while문을 사용하면 된다!