1. 파이썬 제어 구문의 특징
ㅇ 조건문(선택문)에서, `if 문` 만 지원
ㅇ 반복문에서, `for in 문`과 `while 문` 2가지 만 지원
ㅇ 특별히, `컴프리헨션` 이라는, 수학 집합에서의 조건제시법 형태를 지원
※ 비교적 단순한 종류지만, 직관적이고 응용 다양성이 풍부한 편임
2. 파이썬 제어 구문의 종류 : 조건문, 반복문
ㅇ 조건문 형태 : if 문 만 사용
- 단, if문이 다른 언어의 switch,case문 역할까지도 모두 함
- 형식
if 구조
if <test condition> : <block>
if-else 구조
if <test condition> : <block>
else : <block>
If elif else 구조
if <test 1> : <block>
elif <test 2> : <second block>
elif <test 3> : <third block>
else : <oher condition>
ㅇ 반복문 형태 : for in 문과 while 문 2가지 지원
- for 문의 경우, 그 형식은, for in 만 가능
. C 언어의 for 문은, 반복 단계 및 조건을 모두 각각 정의해서 사용하는 것과는 달리,
. 시퀸스 자료형(문자열,리스트,튜플 등 순서열)의 모든 요소에 대해 일단 무조건 반복 수행
. 형식 : for item in Iterable 객체
.. Iterable 객체 : list, dictionary, set, string, tuple, bytes, range()
.. 例) for n in [1,2,3,4,5] : # 요소 `1`부터 `5`까지 각 요소를 반복 수행
. 한편, PHP,Javascript,Perl 등에서는 이러한 for를 foreach로써 표기함
- while 문은, 조건이 참일 때 반복 수행
3. 파이썬 반복문의 특별한 형태 : 컴프리헨션(Comprehension)
ㅇ 전통적인 for 문 형식이 아니고,
- 수학에서 집합의 조건제시법 처럼, 반복조건의 제시 만으로도,
- `리스트`,`집합`,`사전` 등의 자료형에서,
- 각 원소에 대해 반복적으로 계산을 하고,
- 그 결과를 주어진 자료형에 담아 출력함
* 더욱 간결하고, 이해가 쉬운, 코드 작성이 가능하게 됨
ㅇ 리스트 컴프리헨션 例)
- [i*i for i in range(1,11)] => (단일 for 루프) [1,4,9,16,25,36,49,64,81,100]
- [i*j for i in range(2,10) for j in range(1,10)] => (이중 for 루프) 2단 ~ 9단까지 구구단
- [i*i for i in range(1,11) if i%2 == 0] => (조건 필터 추가) [4,16,36,64,100]
ㅇ [참고] (조건 필터 추가) : 조건 표현식 (Conditional Expression)
- 단 한 줄에 조건문 형태로 표현 가능
- 형식 : < 조건 만족 때 > if < 조건 > else < 조건 만족 않을 때 >