본문 바로가기

Programming/Python

흐름 제어

 파이썬에는 if , for , while 이라는 세 종류의 흐름 제어문을 사용할 수 있다.


if문        :     if문은 조건을 판별할 때 사용된다 , if(만약) 조건이 참이라면 , if블록의 명령문을 실행하며 else(아니면) else블록의 명령문을 실행한다.


사용자로 부터 숫자를 정수형 숫자를 입력받아 그 숫자가 프로그램에 지정된 숫자와 같은지 확인한다.
먼저 number변수에 원하는 숫자를 넣는다 (위 코드에서는 23)
그리고 , input()함수를 통해 사용자로부터 입력을 받는다 . ( 여기서 함수란 재사용 가능한 프로그램 조각을 의미)

파이썬에 내장되니 input()함수에 문자열을 넣어주면 화면에 이 문자열이 출력되며 , 또 사용자의 입력을 기다리게 된다.
input()함수는 사용자가 입력한 것을 문자열의 형태로 반환해준다 , 
이제 int를 이용하여 이것을 정수형으로 변환한 뒤 , 그값을 변수 "guess"에 대입한다.

여기서 사용된 int()는 클래스라고 불리는것인데 , 여기서는 일단 문자열을 숫자형으로 변환해준다는 것만 기억

다음으로 우리가 입력한 숫자와 우리가 고른 숫자를 비교하여 비교에 따라 흐름을 분기시켜 문자열을 출력한다.
그리고 if문 뒤에 " : " 콜론이 붙은것을 확인하자 . 콜론은 그 다음줄 부터 새로운 블록이 시작된다는걸 의미한다.
(파이썬에는 switch문이 없다 , 대신 if..elif..else문을 이용하고 몇몇상황에서는 딕셔너리를 이용)





while문        : while문은 특정 조건이 참인 경우 계속해서 블록의 명령문들을 반복하여 실행할 수 있도록 한다.
                    while문 또한 반복문의 한 종류이므로 , else절이 따라올 수 있다.




위의 if문의 예시코드를 좀 손 보았다.

들여쓰기를 주의하며 코드를 보자.

아까와 비슷한 코드지만 더 나은점은 사용자가 답을 맞출때 까지 숫자를 입력할수 있다는 점이다.

먼저 while루프가 실행되기 전 변수 'running'이 'True'로 설정되어 있으므로 , while문에 딸려 있는 while블록이 실행되며
input()과 if문이 실행된다,     이 블록의 실행이 끝나면 while문은 변수 running의 값을 다시한번 확인한다.
이 값이 True인 경우 while 블록을 다시한번 실행하며 , 거짓인 경우 elsel블록을 실행한 뒤 루프를 빠져나와 다음 명령문이 실행된다.


여기서 True 와 False라는 값들은 Boolean 형식이라고 불리며 , 각각의 숫자 1 , 0으로 간주된다.
(while 루프에 else절이 사용될수 있음을 기억)



for 루프
            for..in 문은 객체의 열거형(Sequence)을 따라서 반복하여 실행할 때 사용되는 파이썬의 내장된 또 하나의 반복문으로 , 열거형에 포함된 각 항목을 하나씩 거쳐가며 실행한다.        열거형에 대해서는 이후에 좀 더 자세히 다룰 것이다. 여기서 열거형이란 여러 항목이 나열된 어떤 목록을 의미한다고 생각하자.




이 코드는 화면상에 숫자의 나열을 출력한다 , 파이썬에 내장된 range 함수를 통해 이러한 숫자의 나열을 생성한다.
여기서 range 함수에 두 개의 숫자를 넣어주었으며 , 그러면 이 함수는 첫번째 숫자 이상 두번째 숫자 미만까지의 숫자목록(리스트)를 반환한다.     ( 첫번째숫자는 포함 , 두번째숫자는 포함하지않음을 꼭 기억)
range(1,5)를 표현하자면 [1,2,3,4]이고 이 숫자들을 순차적으로 i에 대입하며 i를 print하는 구조다.

range함수에 3개의 숫자를 넣어보자 , 이 세번쨰 숫자는 그 숫자만큼씩 증가하는 숫자들의 리스트를 얻을수 있다.
ex) range(1,5,2)    ->  [1,3]   출력         , 반환되는 리스트의 두번쨰 숫자 미만까지 반환됨!



break문 :    break문은 루프문을 강제로 빠져나올 떄 , 즉 아직 루프 조건이 'False'가 되지 않았거나 열거형의 끝까지 루프가 도달하지 않았을 경우에 루프문을의 실행을 강제로 정지하고자 할때 사용
중요한 점은 만약 여러분이 break문을 써서 for 루프나 while 루프를 빠져나왔을 경우 , 루프에 딸린 else블록은 실행되지 않는다.



사용자의 입력을 반복해서 받고 입력받은 문자열의 길이를 출력.
while의 조건이 'True'이기 때문에 무한루프 시전
다만 사용자가 입력한 문자열이 'quit'일 경우 , 'break'문으로 루프를 빠져나와 프로그램을 정지하도록 특별한 조건을 넣어줬다.
입력받은 문자열의 길이는 내장함수 len을 이용하여 계산 가능!

break문은 for문에서도 사용이 가능함을 기억하자.



Continue문 : continue문은 현재 실행중인 루프 블록의 나머지 명령문들을 실행하지 않고 곧바로 다음 루프로 넘어가도록 한다.



사용자로부터 입력을 받는다 , 입력받은 문자열의 길이가 적어도 3 이상인 경우에만 문자열을 처리한다.
즉 내장함수 len()을 통해 입력받은 문자열의 길이를 알아낸 후 그 길이가 3보다 작으면 , continue문을 이용하여 그 이하의 명령문을 실행하지 않고 다음 루프로 넘어가도록 한다. 
입력받은 문자열의 길이가 3 이상일 경우에만 그 이하의 명령문이 실행되고 지정된 작업을 수행.
continue문은 for루프 내에서도 이용될 수 있음을 기억

이번엔 if, while, for 세 종류의 흐름 제어문에 대해 공부했고 그와 같이 이용 가능한 break과 continue문에 대해서도 공부했다.
이 명령문들은 파이썬에서 가장 많이 사용되는 명령문들에 속해 있으니 꼭 머리에 넣어놓자

'Programming > Python' 카테고리의 다른 글

모듈  (0) 2017.11.11
함수  (0) 2017.11.11
변수 ~  (0) 2017.11.11
파이썬 기초  (0) 2017.11.11
Python이란  (0) 2017.11.11