참고 자료
https://docs.python.org/ko/3/tutorial/controlflow.html
https://docs.python.org/ko/3/reference/compound_stmts.html
파이썬 버전 3.7 기준
파이썬의 흐름제어 및 반복 구문
if문, while문, for문 등.
각 구문의 공통 문법
○ 구문의 끝(예를들어 조건문 뒤)에는 콜론(:)을 붙여주어야 한다.
○ 구문에서 내용에 해당되는 부분은 같은 길이의 들여쓰기나 탭으로 구문 안에 있다는 것을 명시한다.
▷ PEP8에서는 들여쓰기에 스페이스 4개를 사용을 권장한다.
흐름제어 구문
if 구문 (elif 및 else 포함)
구문 형식)
if 조건문1:
내용
elif 조건문2:
내용
elif 조건문3:
내용
....
else:
내용
○ if 및 elif 구문에서는 조건문이 참(True)일 경우 내용이 실행된다.
○ elif 구문은 다른 언어에선 else if 이며, 위쪽 if 구문이 거짓(False)일 경우 조건문을 점검하여 참(True)인 경우 구문 내부 내용을 실행한다.
▷ elif 구문은 여러 개가 사용될 수 있다.
○ else 구문은 모든 위의 if 구문 및 elif 구문의 조건문이 맞지 않을 경우 실행한다.
▷ else 구문은 모든 조건문이 맞지 않을때 else 구문 내용을 실행하므로 가장 아래쪽에 위치시켜야 한다.
○ 당연한 얘기지만 elif문 및 else문은 필요에 따라서 사용하거나 사용하지 않을 수 있다.
▷ 하지만 사용할 경우 if 구문 아래에 사용하여야하며 else 구문은 가장 아래 사용하여야 한다.
반복 구문
while 구문
구문 형식)
while 조건문:
내용
○ while구문은 조건문이 참인 경우 내용을 실행하며, 거짓이 될 때까지 계속해서 내용을 반복 실행한다.
▷ 조건문에 True 혹은 1을 입력할 경우 무한루프에 빠트리는 것이 가능하다.
▷ 내용에 조건문을 거짓(False)으로 만들 수 있는 조치를 하지 않는 경우 역시 무한루프에 빠질 수 있다.
사용 예)
In[7]: i = 0
In[8]: while i<5:
...: print('interation: ', i)
...: i += 1
...:
interation: 0
interation: 1
interation: 2
interation: 3
interation: 4
for 구문
구문 형식)
for 변수 in 이터레이블(iterable):
내용
○ 이터레이블에 있는 요소를 하나씩 꺼내어 변수로 대입한 후 내용을 수행하며, 모든 이터레이블 요소를 소진하기까지 이를 반복한다.
▷ 내용에 변수를 유용하게 사용할 수 있으나 굳이 사용하지 않아도 된다.
○ while 구문과는 다르게 이터레이블의 수는 (아마도) 유한하기 때문에 무한루프에 빠지기는 어렵다.
○ for 구문은 이터레이블 자리에 리스트나 튜플, range(), enumerate() 등을 많이 사용한다.
▷ 리스트나 튜플의 요소를 그대로 변수를 사용하고 싶은 경우는 리스트나 튜플 등을 그대로 넣으면 된다.
▷ 변수에 굉장히 단순한 숫자 배열만 필요한 경우는 range()를 이용하는 것이 좋다.
▷ 리스트나 튜플 요소와 그 인덱스를 동시에 사용하고 싶은 경우 enumerate()를 사용하면 된다.
○ 먼저 쉽게 설명하면 리스트와 튜플과 같은 시퀀스형 자료형 대부분은 이터레이블하다.
○ 이터레이블에 대한 자세한 설명은 여기를 참고한다.
사용 예)
In[3]: a = ['a', 'b', 'c', 'd']
# 리스트 사용 예
In[4]: for element in a:
...: print('Element: ', element)
...:
Element: a
Element: b
Element: c
Element: d
In[6]: for num, element in enumerate(a):
...: print('Index: ', num,',', ' Element: ', element)
...:
Index: 0 , Element: a
Index: 1 , Element: b
Index: 2 , Element: c
Index: 3 , Element: d
'Python > 파이썬 기초' 카테고리의 다른 글
함수 생성 및 결과출력(def, return) - 파이썬 기초(19) (0) | 2018.12.26 |
---|---|
기타 흐름 제어(break, continue, else, pass) 구문 - 파이썬 기초(18) (0) | 2018.12.25 |
기타 내장함수 - 파이썬 기초(16) (0) | 2018.12.21 |
클래스(class)와 어트리뷰트(attribute)와 관련된 내장함수 - 파이썬 기초(15) (0) | 2018.12.20 |
입출력과 관련된 내장함수(print, open, input) - 파이썬 기초(14) (0) | 2018.12.19 |
댓글