04. 제어문(if문, while문, for문)
참고 : 문법을 들어가면서 사람들이 가장 많이 하는 실수 중 하나가 공백의 수를 맞추지 않고 실행하는 경우이다. 파이썬 같은 경우는 공백과 띄어쓰기에 민감하고, 읽어낼 수 없는 경우가 많으므로 이점은 주의한다.
1. IF문
A. 조건이 참이면 if문 실행, 거짓이면 else문 실행
i. 소스 코드
signal_color = input("색을 영문으로 입력하세요 : ")
#색 입력 요청
if signal_color == 'blue':
print("신호등은 파란색입니다. 건너세요.")
#blue를 입력할 경우
else:
print("신호등은 빨간색입니다. 기다리세요.")
#다른 것을 입력할 경우
ii. 실행 결과
색을 영문으로 입력하세요 : red
신호등은 빨간색입니다. 기다리세요.
색을 영문으로 입력하세요 : blue
신호등은 파란색입니다. 건너세요.
iii. 캡처 화면
2. if – elif – else문
A. 다음의 순서대로 조건문을 실행
i. 소스 코드
signal_color = input("색을 영문으로 입력하세요 : ")
#색 입력 요청
if signal_color == 'blue':
print("신호등은 파란색 입니다. 건너세요")
#blue를 입력한 경우
elif signal_color == 'red':
print("신호등은 빨간색입니다. 기다리세요.")
#red를 입력한 경우
else:
print("잘못된 색 입니다.")
#다른것을 입력한 경우
ii. 실행 결과
3. 중첩 if문
A. if문 안에 또 다른 if문이 있는 경우
i. 소스 코드
signal_color = input('색을 영문으로 입력하세요 : ')
#색 입력 요청
if signal_color == 'blue':
print('신호등은 파란색 입니다. 건너세요')
#blue를 입력한 경우
is_pass = input('건널 준비가 되어있나요? (yes/no) ')
#건널 준비가 되었는지 확인
if is_pass == 'yes':
print('건너겠습니다!!')
#준비가 된 경우
else:
print('다음 번에 건너겠습니다.')
#준비가 안된 경우
elif signal_color == 'red':
print('신호등은 빨간색입니다. 기다리세요.')
#빨간색인 경우
else:
print('잘못된 색 입니다.')
#잘못 입력한 경우
ii. 실행 결과
4. While문
A. 특정 조건에 만족할 때 까지 반복하는 경우를 위한 방법
B. 사용 법) while 조건 :
i. 소스 코드
signal_color = ''
#변수 선언 및 초기화
while signal_color != 'blue' and signal_color != 'red' :
#반복문 시작
signal_color = input("색을 영문으로 입력하세요 : ")
#색 입력 요청
if signal_color == 'blue':
print("신호등은 파란색 입니다. 건너세요")
#blue를 입력한 경우
elif signal_color == 'red':
print("신호등은 빨간색입니다. 기다리세요.")
#red를 입력한 경우
else:
print("잘못된 색 입니다.")
#다른 것을 입력한 경우
print("프로그램을 종료합니다.")
#반복문 종료 후 출력
ii. 실행 결과
5. For문
A. 특정 범위만큼 수행되는 반복문
i. 소스 코드
signals = 'blue', 'yellow', 'red' #3가지 색에 대한 튜플 생성
for signal in signals: #for문 실행
print(signal, len(signal)) #튜플의 값, 길이 출력
ii. 실행 결과
B. “signals라는 열거형 데이터형의 항목을 하나씩 꺼내서 아래 블록문을 수행하라”
6. for문과 range( )함수
A. range( )함수는 인자값을 int형으로만 가지며 입력한 수 만큼 0부터 시작해서 값이 증가하도록 한다.
B. 순차적인 숫자로 이루어진 리스트를 쉽게 만들 수 있게 된다.
i. 기본 소스 코드 및 결과
>>> for x in range(5): #0~4까지의 숫자를 순차적으로 x에 대입
print(x) #x값 출력
0
1
2
3
4
>>> list(range(5)) #리스트형 값 확인
[0, 1, 2, 3, 4]
>>> type(range(5)) #range() 반환 값 타입 확인
<class 'range'>
>>> range(5) #range() 반환 값 확인
range(0, 5)
>>> list(range(5, 10)) #5~9를 포함한 리스트 만들기
[5, 6, 7, 8, 9]
>>> list(range(0, 10, 2)) #0~9까지 2씩 띄어가며 리스트 생성
[0, 2, 4, 6, 8]
ii. 응용 소스 코드
signals = 'blue', 'yellow', 'red'
#3가지 색에 대한 튜플 생성
for signal in signals:
#for문 실행
print(signal, len(signal))
#튜플의 값, 길이 출력
iii. 실행 결과
7. 중첩 for문
A. For문 안에 for문이 들어가 있는 형태
i. 소스 코드
>>> # 3x3 2차원 배열을 중첩 리스트로 선언
>>> nest = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> for x in range(3): #행을 위한 바깥쪽 for문
for y in range(3): #열을 위한 안쪽 for문
print('nest [', x, '] [', y, '] : ', nest[x][y])
#항목 출력
nest [ 0 ] [ 0 ] : 1
nest [ 0 ] [ 1 ] : 2
nest [ 0 ] [ 2 ] : 3
nest [ 1 ] [ 0 ] : 4
nest [ 1 ] [ 1 ] : 5
nest [ 1 ] [ 2 ] : 6
nest [ 2 ] [ 0 ] : 7
nest [ 2 ] [ 1 ] : 8
nest [ 2 ] [ 2 ] : 9
'Python' 카테고리의 다른 글
06. 실습 프로젝트 (0) | 2017.09.27 |
---|---|
05. 제어문과 자료형의 조합 (0) | 2017.09.18 |
03. 튜플형, 세트형, 사전형 (0) | 2017.09.09 |
02. 문자열, 리스트 (0) | 2017.09.04 |
01. Python시작 (0) | 2017.08.31 |