Python/파이선과 친해지기

[Python] - Python과 친해지기-반복문 for와 while

학생관리 프로그램을 만드는 저번 시간, 여러 자료구조의 힘을 빌려서 우리는 변수를 하나로 지정하는 효율적인 방법을 알았지만, 휴. 이제 퇴근을 해야 되는데 우리나라의 이름 체계가 바뀌는 바람에 "철수"라는 이름의 사용이 금지되었다. 이제 모든 "철수"는 아직 정해지지 않았기 때문에 "**"로 바꾸어야 되는 상황이 왔다. 

 

다행히도 우리의 Python은 문자열에 대해서. replace([기존], [바꿀 문자열])을 제공한다.

>> students[0] = "김철수"
>> students[0] = students[0].replace("철수","**")
// students[0]의 철수를 **로 바꾼다.

>> print(students[0])
"김**"

훌륭한 기능이 주어졌으니, 이제 남은 건 위의 코드를 students의 길이만큼 치는 일이 남아있다.... 무언가 비효율적이다.

다행히도, 우리의 퇴근시간을 앞당겨줄 <반복문>이라는 훌륭한 도구가 있다.

 

 students[0] = "김철수, students[1] = "배철수", students[2] = "윤철수"    ...    students[29] = "남궁 철수"

잘 보면 students의 인덱스가 1씩 늘어남으로 각각의 원소에 접근을 할 수 있는 것을 알고 있다. 

 

 

반복문은 컴퓨터의 특성을 아주 잘 살린 제어블록으로 단순한 작업을 여러번 반복하는 내용을 담고 있다. python에서 사용하는 반복문은 크게 for문과 while문이 있는데, 순서대로 알아보도록 하자


for문의 사용

다음과 같은 예시를 통해서 반복문이 어떻게 사용되는 지 알아보도록 하자

*여기서 students는 길이가 30인 LIST이다.

코드 :
for i in range(len(students)) :
	students[i] = students[i].replace("철수","**")
	print(students[i])
    
    
출력 :
"김**"
"배**"
...
"남궁**"

일단 낯선 코드가 눈에 보인다. for i in range(len(students)) : 란 무엇일까?

for 반복문은 모두 위와 같은 형태를 띈다. 반복자가 0부터 (범위-1)만큼 늘어나며 반복을 하는 것이다.

* 왜 0부터 범위-1 인지는 Python과 친해지기 LIST를 보도록 하자 

* 위와 같은 이유로 [범위] 안에는 무조건적으로 정수(Integer)가 들어가야 한다.

 

첫 번째 반복(루프) 때는 아래와 같은 항목이 실행이 되고, 반복자(i)의 크기가 1이 늘어난다.

student[0] = students[0].replace("철수","")
print(students[0])

이제 i는 1이 되었고 아래와 같은 항목이 실행이 된다.

student[1] = students[1].replace("철수","")
print(students[1])

반복적으로 실행을 하며 i는 3,4,5 ... 28까지 왔고 다음과 같은 마지막 항목이 실행이 되며 for반복문이 종료된다.

student[29] = students[29].replace("철수","")
print(students[29])

 

다음으로는 또 다른 반복문인 while문에 대해서 알아보도록 하자

 

while문의 사용

cnt = 0
while(cnt<30) :
	students[cnt] = students[cnt].replace("철수","**")
    	print(student[cnt])
    	cnt+=1

while은 다음과 같은 문법 형태를 가진다.

조건은 저번 시간에 배웠던 True, False를 반환 가능한 연산자를 활용해도 되고, True나 False 그 자체를 집어넣어도 상관없다. for와 비슷한 형태를 가지지만, 반복자가 없다는 특징이 있다. 이러한 이유로 while 반복문에서 반복자 같은 개념을 사용하려면 직접 반복자 같이 사용할 변수를 지정해야 한다는 특징이 있다.(위 예시문에서는 cnt가 되겠다)

 


이번 시간에는 반복문의 기본인 for와 while에 관하여 이야기를 나누었다. 다음 시간에는 반복문에 대한 깊은 이해를 위해 여러 가지 반복문의 사용과 반복문의 특징과 주의 점등을 알아보도록 하자