본문 바로가기

Lecture/Python Quest

Python Quest 5: Loop (while, for)

강의내용:

1) python: while

2) python: for

 

while이나 for를 가리켜 반복문이라고 한다.

while의 기본을 살펴보자

 

문법은 이렇다

while expression :
    statements if expression is true
    statements..

expression이 참일 경우에 그 후에 들여쓰기가 된 문장들을 실행한다.

전에 말했듯이 파이썬은 들여쓰기가 중요한 언어이다.

 

들여쓰기가 된 모든 라인이 실행된 이후에 다시 while로 돌아가 expression을 검사한다.

expression이 참일 경우는 다시 실행, 그렇지 않을 경우 while의 들여쓰기 된 부분을 모두 건너뛰고 그 다음을 실행한다.

 

간단히 말하면 expression이 참일 동안 계속 반복 실행한다.

 

while이 참일 동안 계속 반복한다는 것은 while 내의 문장 속에 expression의 여부를 결정할 수 있는 변수가 있어야 한다는 것이다. 그렇지 않다면 컴퓨터가 꺼질 때까지 반복할 것이다.

 

예를 들어보자

number = 0

while number < 5 :
    print(number)
   
print("Program end")  # This will never run

number는 변하지 않으니 프로그램을 종료할 때까지 0을 한참 찍어낼 것이다.

 

number = 0

while number < 5 :
    print(number)
    number = number + 1

print("Program end")  # This will run when number becomes 5

위 예제처럼 expression의 내용이 변경될 수 있게 프로그램을 해야한다.

 

Python에서 for는 다른 기존 프로그램과는 약간 다르다.

예를 들어 C에서 for의 사용은 처음 사용하는 값과, 비교, 그리고 변경을 명시해 사용한다. 

for (i=0; i<5; i++)

Python에서 for는 객체의 내용을 하나씩 다룬다는 점에서 큰 차이가 있다.

 

예를 들어보자.

list1 = [1,2,3,4,5]

for value in list1:
	print value	#리스트의 내용을 모두 하나씩 출력

위의 예제에서는 list1의 요소 하나하나를 순차적으로 value에 대입한 후 그 결과를 출력한다.

 

다른 언어에서 흔히 알고 있는 for의 형태로 사용하려면 range() 함수를 사용하면 된다.

range(stop)	#create immutable sequence start from 0 and step 1
e.g.
range(5) = [0,1,2,3,4]

range(start, stop[, step])	# range that start, stop and step defined
e.g.
range (1, 5) = [1,2,3,4,5]

예를 들어 1부터 5까지 다섯번 수행하는 for를 만든다면

for i in range(1,5):

반복문을 제어하는 자주 사용되는 두가지 명령어에는 break와 continue가 있다.

 

프로그램이 break를 만나면 그 즉시 해당 코드블럭을 탈출한다.

프로그램이 continue를 만나면 그 즉히 해당 코드블럭의 맨 끝으로 이동, 다시 반복문의 expression을 검사한다.

 

예를 들어 1부터 5중 1과 3만 출력하고, 4에서는 프로그램을 종료하는 프로그램을 만든다면

for value in range(1,5):
    if value== 2:
    	continue
    elif value==4:
    	break
    else:
    	print(value)
 
 --------------------
 result:
 1
 3
 

for는 얼만큼 반복해야 하는지 아는 경우에 쉽게 사용이 가능하고, while 반복의 수를 확정하기 어려울 때 유용하다. 하지만 while과 for 모두 반복해서 실행하는 명령어이며 대부분의 상황에서 while - for의 변경이 가능하다.

'Lecture > Python Quest' 카테고리의 다른 글

Python Quest 4: If Else  (0) 2019.05.17
Python Quest 3: Data types  (0) 2019.05.17
Python Quest 2: Variables  (0) 2019.04.25
Python Quest 1: 파이썬 설치, Hello World  (0) 2019.04.22