설명할 수 없으면 이해한 것이 아니다. for문을 이해했다고 생각했지만, for문과 while문의 차이는 완벽히 이해하지 못했음을 현진님을 도와드리다가 알게 됐다. 이 글은 특히 '변수'에서의 차이에 집중해본 til이다.
for [변수] in [문자열, 리스트, 튜플]: [수행부분]
여기서 중요한 지점은 for 반복문의 for [변수] in [문자열, 리스트, 튜플]
부분을 통해 새로운 변수를 만든다는 점. for 반복문은 이 부분에서 while과의 차이를 보인다.
파이썬 톺아보기의 for문 예제를 봐도, for문을 통해 변수 i가 선언되고 있음을 확인할 수 있다.
for i in range(1, 10):
print(i)
while [조건문]: [수행부분]
while 반복문은 [조건문]이 참(True)인 경우 내부의 수행 부분을 진행하고, [조건문]이 거짓(False)인 경우 while문을 빠져나간다.
즉, while [조건문]:
부분은 있는 변수의 True / False 여부를 판단할 뿐, 새로운 변수를 만드는 작업을 할 수 없다.
while 반복문의 예제를 찾아보면 while의 동작을 설명하기 위해 while 앞에 변수 설정부터 보여주는 경우가 많은데, 이 이유 때문인 것으로 추측된다. (아마 맞을 것이다...)
파이썬 톺아보기의 while문 예제도 다음과 같다.
count = 1
while count < 10:
print("Count: %d" % count)
count += 1
똑같은 결과를 만들지만, for문과 while문을 사용하여 다르게 푼 서울에서 김서방 찾기를 공유하며 마무리한다.
def solution(seoul):
x = 0
while x in range(len(seoul)):
if seoul[x] != "Kim":
x += 1
if seoul[x] == "Kim":
return("김서방은 {}에 있다".format(x))
def solution(seoul):
x = 0
for element in seoul:
if element == "Kim":
return("김서방은 {}에 있다".format(x))
if element != "Kim":
x += 1