Python

04. 제어문

김야키 2017. 9. 14. 13:38

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