제어문에는 if , for , while 등이 있다.
1. if
if (조건식):
문장
조건식이 참인 경우 문장을 수행하며, 아닐시 문장을 수행하지 않고 넘어간다.
조건식에 있는 데이터는 bool 타입으로 변환한 후 판단된다.
숫자 0과 none, 빈 객체를 제외한 모든 데이터는 True로 변환된다.
if ~ elif
if ~ :
stmt1
elif ~ :
stmt2
if ~ elif 문에서는 여러 조건식을 판단하며, 만약 먼저 나오는 조건식에서 참 값을 반환하여 문장이 실행된다면 연결된 모든 elif 문은 판단하지 않고 생략한다.
else
if ~ :
stmt1
else:
stmt2
if문의 조건식이 참이 아닐때 else 문이 실행된다.
조건 표현식
if문을 표현식으로 바꿔 표현하는 방법. 코드의 간결성을 늘려준다.
x=1 ; y=77
result = x if x > y else y # 한 문장 안에 간단하게 쓸 수 있다.
# 마지막 y 자리에 새로운 조건 표현식을 넣어 중첩해서 쓸 수도 있다.
2. for
list = [1,2,3,4,5]
for x int list: #리스트 안에 있는 데이터들을 하나씩 접근함.
print(x) #C 계열과 달리 x 로 객체 안의 값을 접근함.
range()를 이용한 for 문
for i in range(0,10): #0 ~9 까지 반복문을 돈다
print(i)
dictionary 형 + for
mydict = {'a':1,'b':2,'c':3}
for x in mydict: # 바로 접근하면 key 값을 읽음
print(x)
-->
a
b
c
for x in mydict.values(): # value를 읽고싶다면 values() 메소드 사용
print(x)
-->
2
1
3
enumerate() + for
list = [a,b,c]
for i, x in enumerate(list): #index를 알고 싶을 때 사용
print(i,x)
->
1 a
2 b
3 c
break , continue
- break : 반복문을 강제로 종료시킬 때 사용
- continue : 반복문 안의 나머지 코드 수행을 건너뛰고 다음 항목을 순회시킴
리스트 내포
- 매우 파이써닉한 문법. 간결성을 극대화 시켜줌
[expr for x in OBJECT (if 조건식)]
list = [x for x in ragne(0,10)]
list2 = ['even' for x in [2,4,5] if x%2==0] # if~ 는 필터의 역할만 한다
# if 하나만 있을땐 이렇게
list3 = ['even' if x%2==0 else 'odd' for x in list] # 조건 표현식을 이용
# else 까지 있을땐 이렇게
3. while
while 조건식:
stmt
조건식이 참이라면 반복문을 수행한다. 보통 while문 안에 증감식을 둔다.
조건식과 증감식에 반복자를 사용하여 반복문을 도는 경우도 있다.
Comments