for문 while문의 변수에 대한 차이

히제오·2020년 10월 4일
3

파이썬 til

목록 보기
3/9
post-thumbnail

설명할 수 없으면 이해한 것이 아니다. for문을 이해했다고 생각했지만, for문과 while문의 차이는 완벽히 이해하지 못했음을 현진님을 도와드리다가 알게 됐다. 이 글은 특히 '변수'에서의 차이에 집중해본 til이다.

for문과 변수

for [변수] in [문자열, 리스트, 튜플]:
	[수행부분]
  1. for문의 in 뒤에 존재하는 문자열, 리스트, 튜플을 순서대로 순회하며 하나씩 변수에 넣어주고, 변수가 들어간 상태로 수행부분을 진행
  2. 문자열, 리스트, 튜플 구성요소를 순회하다가 더 이상 순회할 것이 없다면 for 반복문 빠져나오기 / 순회를 끝내기 전에 return 값이 나온다면 for 반복문 종료

여기서 중요한 지점은 for 반복문의 for [변수] in [문자열, 리스트, 튜플] 부분을 통해 새로운 변수를 만든다는 점. for 반복문은 이 부분에서 while과의 차이를 보인다.

파이썬 톺아보기의 for문 예제를 봐도, for문을 통해 변수 i가 선언되고 있음을 확인할 수 있다.

for i in range(1, 10):
    print(i)

while문과 변수

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문 중 어떤 것으로 코드 짤지 고민된다면, 조작할 변수의 존재 여부도 고려해보자

똑같은 결과를 만들지만, 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
profile
삽질 전문가. 모든 일에 진심인 편.

0개의 댓글