Download - [2011 05 21] 4장 제어
4 장 제어
2011. 05. 21원종필
Python 3 프로그래밍
If 문
if < 조건식 1>:
< 구문 1>
elif < 조건식 2>:
< 구문 2>
else:
< 구문 3>
• : 으로 조건식이 종료됨을 알린다• 조건식이 참인 경우 : 이후의 구문이 수행• 동일한 블록의 들여쓰기 정도는 항상 일치해야 한다
조건식의 참 / 거짓 판단
• bool 판단값과 같다 , True 또는 False
• False 인 경우• 정수 계열의 0
• 실수 계열의 0.0
• 시퀀스 계열의 (), [], {}, 빈 문자열 (“”)
• 아무것도 없음을 의미하는 None
• False 이외의 값이 할당된 변수는 참으로 판별
단축 평가
• 조건식 전체를 판별하지 않아도 수식의 평가가 분명해진 경우
나머지 수식을 평가하지 않는것을 단축평가라 한다• and( 단축평가 사용 ) 와 &
• or( 단축평가 사용 ) 와 |
• 좌변 피연산자가 우변 피연산자보다 먼저 단축평가 되는게 보장됨
while 문
• 조건식이 거짓으로 평가되면 while 구조를 벗어난다• 반복문 도중 break 로 인해 중간에 종료되지 않고 끝까지
수행되었을때 else 블록이 수행된다
while < 조건식 >:
구문else:
구문
for 문
• 사용할 수 있는 시퀀스형 자료• 문자열 , 리스트 , 튜플 , 사전 , 이터레이터 객체 ..
• 반복문 수행중 break 없이 끝까지 수행되었을 때 else 블록 수행
for < 아이템 > in <Sequence 형 객체 >:
구문else:
break, continue
• 반복문을 제어하기 위하여 사용한다• break 를 만나면 반복문 내부 블록을 벗어난다• continue 를 만나면 continue 문 이후 내부 블록을 수행하지 않고
다음 아이템을 선택하여 반복문 내부 블록의 시작지점으로 이동한다
range()
• range() 는 수열을 생성한다• 종료값은 수열 종료조건으로 필수 , 생성되는 수열에는 포함되지 않는다• 시작값과 증가값은 선택적으로 입력• 기본값으로 시작값은 0, 증가값은 1 을 가진다
range( 시작값 = 0, 종료값 , 증가값 =
1)
enumerate()
• 시퀀스 객체 순회에서 인덱스와 항목값을 동시에 얻고자 하는 경우에 사용• 실행되고 나면 튜플형태로 ( 인덱스 , 시퀀스 객체의 아이템 ) 이 반환
enumerate( 시퀀스타입객체 , 시작값 = 0)
리스트 내장
• 기존 리스트 객체를 이용하여 연산을 통해 새로운 리스트를
생성하는 경우 효율적으로 사용• 표현식은 개별 아이템을 사용하여 새로운 객체를 생성하는 데 사용• if< 조건식 > 은 조건에 맞는 원본 리스트의 아이템을 선별하는 경우 사용
< 표현식 > for < 아이템 > in < 시퀀스타입객체 > (if
< 조건식 >)
filter()
• 첫번째 인자는 필터링에 사용할 함수이름 , 모든 아이템 선택시는 None
• 이터레이터를 반환하므로 튜플에 담기 위해서는 내장함수사용 (list(),tuple())
filter( 함수 | None, 이터레이션이 가능한 자료형 )
zip()
• 3 개 이상의 시퀀스형 , 이터페이터형 객체를 튜플로 묶을 수 있다• 내장 시퀀스형 , 이터레이터를 지원하는 클래스 , 이터레이터 객체가 가능• 반환 값은 쌍을 이룬 튜플 객체의 이터레이터 형• 결합하는 인자 개수가 다를 경우 가장 짧은 쪽을 기준으로 결함• zip() 으로 결합한 결과 분리는 zip 호출시 * 를 붙이면 된다
map()
• 시퀀스를 돌면서 모든 값을 갱신하는 경우에 사용• 객체를 순회하며 각 아이템을 첫번째 인자인 함수에 전달하고
결과를 이터레이터 객체로 생성하여 반환한다
map( 함수이름 , 이터레이션 가능한 객체 , …)
효율적인 순회방법• for 문을 사용하여 순회
• 문자열 내장 메서드인 join() 이나 리스트 내장을 이용
• for 문을 이용한 출력에는 리스트 아이템 개수만큼 print() 실행
join() 이나 리스트 내장을 쓰는 경우 print() 가 딱 한번만 실행
Q / A
END