본문 바로가기
Python

제어문

by Salgoo26 2021. 8. 30.

제어문

제어문 (Control Statement)

  • 파이썬을 기본적으로 위에서부터 아래로 순차적으로 명령을 수행
  • 특정 상황에 따라 코드를 선택적으로 실행하거나 계속해서 반복하는 제어가 필요

조건문 (Conditional Statement)

  • if문은 참/거짓을 판단할 수 있는 조건식과 함께 사용
    • expression에는 참/거짓에 대한 조건식
    • 조건이 참인 경우 이후 들여쓰기 돼있는 코드 블록 실행
    • 이외의 경우 else 이후 들여쓰기 돼있는 코드 블록 실행
      • else는 선택적으로 활용 가능
# 복수 조건문
score = 80

if score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 70:
    print('C')
else:
    print('D')

조건 표현식(conditional expression)

  • 조건문을 한 줄로 표현 가능
  • 삼항 연산자로 부르기도 함
  • 예시
# 다음의 코드와 동일한 조건 표현식은?
num = 2
if num % 2:
    result = '홀수'
else:
    result = '짝수'
print(result)    

# 조건 표현식으로 표현해보기 (= 삼항연산자)
result = '홀수' if num % 2 else '짝수'
  • 주의할 점은, 코드가 짧다고 해서 반드시 좋은 코드는 아님
  • 예컨데 위의 경우, 코드의 의미를 이해하기엔 길지만 전자가 낫다.

반복문 (Loop Statement)

  • while 문
    • 종료 조건에 해당하는 코드를 통해 반복문을 종료시켜야 함
  • for 문
    • 반복 가능(iterable)한 객체를 모두 돌면 종료됨 (별도의 종료 조건이 필요하지 않음)
  • 반복 제어
    • break, continue, for-else

while문

  • while문은 조건식이 참인 경우 반복적으로 코드를 실행 (=조건이 False가 될 때까지 반복)
    • 조건이 참인 경우 들여쓰기 되어 있는 코드 블록이 실행됨
    • 코드 블록이 모두 실행되고, 다시 조건식을 검사하며 반복적으로 실행됨
    • 무한 루프를 하지 않도록 종료 조건을 설정해주는 것이 필수

for문

  • for문은 시퀀스(string, tuple. list, range)를 포함한 iterable한 객체 요소를 모두 순회함

    • 처음부터 끝까지 모두 순회하므로 별도의 종료조건이 필요 없음
  • 예시

# 변수명에 주의
chars = input()

for char in chars:
    print(char)
  • iterable 객체는 복수, 객체의 값을 하나하나 저장하는 변수는 단수로 설정

enumerate

  • 리스트를 순회하면서 각 요소의 index값을 함께 출력하고자 할 때

    • 내장함수 enumerate의 경우 (index, value) 형태의 tuple로 구성된 객체를 반환
    • start = (시작값) 을 지정하여 start number 을 변경할 수 있음
members= ['minsu', 'john', 'dida']

for idx, member in enumerate(members):
    print(idx, member)

반복문 제어

  • break

    • 반복문을 종료함
    • 종료 후 가장 가까운 코드블록으로 빠져나감
# while 
n = 0
while True:
    if n == 3:
        break
    print(n)
    n += 1
--------------
0
1
2

# for
for in in range(10):
    if i > 1:
        print('0과 1만 필요해!')
    print(i)
------------------------------
0
1
0과 1만 필요해!
  • continue

    • continue 이후의 코드 블록은 수행하지 않고, 다시 위로 올라가 다음 반복을 수행
for i in range(6):
    if i % 2 == 0:
        continue
    print(i)
------------------    
1
3
5
  • for-else

    • 끝까지 반복문을 실행한 이후에 else문 실행
    • 만약 for문 하에서 break로 중단되면 이후의 else문은 실행되지 않음
# apple
for char in 'apple':
    if char == 'b':
        print('b 발견!')
        break
else:
    print('b 없음')

=> b 없음

# banana
for char in 'banana':
    if char == 'b':
        print('b 발견!')
        break
else:
    print('b 없음')

=> b 발견!
  • pass

    • 아무것도 하지 않음

      • 특별히 할 일이 없을 때 자리를 채우는 용도로 사용
      • 반복문이 아니어도 사용 가능 ex) 함수
# pass
for i in range(5):
    if i == 3:
        pass
    print(i)
------------------
0
1
2
3
4

# continue
for i in range(5):
    if i == 3:
        continue
    print(i)
------------------
0
1
2
4

'Python' 카테고리의 다른 글

객체  (0) 2021.08.30
데이터 구조  (0) 2021.08.30
컨테이너  (0) 2021.08.30
2차원 리스트 생성  (0) 2021.08.01
enumerate() 내장 함수  (0) 2021.08.01

댓글