
오늘은 파이썬에서 흐름 제어와 관련된 다양한 키워드에 대해서 알아보려고 한다. 추가로 exit() 메서드까지 살펴보자!
어떠한 명령문도 수행하지 않고 그냥 넘어가고 싶을 때 사용하는 키워드
다른 프로그래밍 언어에서는 이와 같은 경우 조건문 내부에 아무런 명령문도 명시하지 않으면 되지만, 파이썬에서는 조건문 내부에 명령문이 하나라도 존재하지 않으면 에러가 발생한다.
따라서 파이썬에서는 이런 경우 사용할 수 있도록 pass 라는 키워드를 별도로 제공하고 있다.
for i in range(1, 11):
if i % 2 == 0: # 짝수인 경우, 아무런 명령문도 수행하지 않는다.
pass
else:
print(f'{i}는 홀수')
1부터 10까지의 숫자들 중에서 홀수인 경우만 출력하고 싶은 경우, 짝수일 때 pass 키워드를 이용하면 된다.
1는 홀수
3는 홀수
5는 홀수
7는 홀수
9는 홀수
반복문을 중단하고 싶을 때 사용하는 키워드.
while문에서 특히 자주 사용된다!
반복문을 통해 명령문을 반복해서 수행하다 특정 조건을 만족할 때 더 이상 반복문을 수행하지 않고 해당 반복문을 빠져나가고 싶을 때가 있다.
이런 경우 break 키워드를 사용하여 반복 조건에 관계없이 가장 가까운 반복문을 즉시 탈출할 수 있다.
a = 4
for i in range(1, 11):
if i == a:
break
print(i)
print('loop 종료!')
1부터 10까지의 숫자들 중에서 a 변수와 값이 같으면 반복문을 빠져나가도록 해보자.
1
2
3
loop 종료!
i가 a의 값인 4와 같은 경우, 즉시 반복문을 종료한다. 그래서 5부터 10까지는 출력되지 않는다.
반복문은 빠져나왔지만, 반복문 밖에 있는 print문은 실행된다.
해당 루프만 즉시 종료하고 다음 루프를 실행시키고 싶을 때 사용하는 키워드
continue 키워드는 해당 키워드 바로 다음 명령문부터 해당 반복문의 마지막 명령문까지를 모두 건너뛰고 바로 다음 반복을 실행한다.
a = 4
for i in range(1, 11):
if i == a:
continue
print(i)
print('loop 종료')
이번에는 i와 a의 값이 같을 때, continue 키워드를 실행하도록 하였다.
1
2
3
5
6
7
8
9
10
loop 탈출!
continue 키워드로 인해 i가 4일 때 print(i)가 실행되지 않고, 바로 i가 5인 경우로 넘어간다.
break 키워드와 다르게, 5부터 10까지 모두 출력된다.
(함수 안에서 쓰일 때) 함수 실행을 종료하고, 그 함수를 호출한 곳으로 값을 반환해주고 싶을 때 사용하는 키워드
만약 함수 내에 return에 대한 정의가 없으면, 결과값으로 None을 반환하도록 되어있다.
def hello(name):
return 'hello ' + name
print(hello) # 무시된다.
print('함수 실행 전')
print(hello('python'))
print('함수 실행 후')
함수 실행 전
hello python
함수 실행 후
함수 내에서 return을 만나게 되면 함수 실행을 종료하게 되어, 밑에 있는 print문이 무시된다.
프로그램 전체를 종료하고 싶을 때 사용하는 메서드
for i in range(1, 11):
print(i)
exit()
print('loop 종료')
1
exit()의 적용 범위는 루프가 아닌 프로그램이기 때문에, 루프 밖에 있는 print('loop 종료')도 실행되지 않는다.
http://www.tcpschool.com/python2018/python_flow_ect
https://tturbo0824.tistory.com/8
https://garlicsnackbar.tistory.com/6
https://www.delftstack.com/ko/howto/python/python-exit-program/#exit%25EB%25A9%2594%25EC%2584%259C%25EB%2593%259C%25EB%25A1%259C-python-%25ED%2594%2584%25EB%25A1%259C%25EA%25B7%25B8%25EB%259E%25A8-%25EC%25A2%2585%25EB%25A3%258C