본문 바로가기
프로그래밍 언어/Python 파이썬

[Python] 프로그래밍에서 반복문 for 란 무엇? | 파이썬에서 사용하는 in 키워드 for 반복문을 사용해보자

by 지구인한군 2021. 6. 12.

"프로그래밍에서 가장 중요한 요소가 무엇?" 이냐고 개인적으로 물으신다면 다양한 변수 타입을 포함한 데이터, 그리고 지난 시간에 배웠던 조건문(if)과 오늘 배울 반복문(for)이라고 생각합니다. 프로그래밍 코딩의 삼대장! 

헬스 3대 몇?

 

[Python] 프로그래밍에서 조건문 if 란 무엇? | 파이썬에서 사용하는 if elif else 조건문을 사용해보자


그럼 간단한 반복문 for를 사용해보겠습니다. 반복문은 주로 리스트(list)와 함께 사용하니 모르시는 분은 여기 참고

 

[Python] 프로그래밍에서 배열, 리스트(list)란 무엇? | 파이썬 리스트 기능을 사용해보자

[Python] ♡첫 프로그래밍 경험♡ 파이썬 기초 시작하기 | 설치 및 vscode 텍스트 에디터 다운로드 [Python] ♡첫 코딩 경험♡ 파이썬 hello world | vscode 실행, 확장 기능 설치, 코드 작성 [Python] 파이썬 변.

jiguin-hankun.tistory.com

 

fruits = ['banana', 'apple', 'grapes', 'hankun', 'cherry']

print( fruits )

for fruit in fruits:
	print( fruit )

여기 과일 목록(list)이 있습니다. 단순히 fruits 변수를 프린트하면 과일들의 이름이 한 줄로 열거되겠지만, 각각의 과일 이름들을 프린트할 경우 print 함수를 5번 찍어주는 것은 너무 비효율적입니다. 만약 리스트의 과일 데이터가 50만 개라면... 그래서 for 키워드와 in 키워드로 fruitsfruit에 넣고 자동으로 리스트의 끝까지 반복을 시키는 것입니다!!!

 

  • for 키워드 다음에 리스트에서 받을 단일(단수) 데이터 이름 넣기
  • 다음에 in 키워드 적고 반복 작업을 할 리스트(복수) 데이터 넣기
  • 마지막으로 콜론(:) 찍어주고 꼭 다음 줄은 들여 쓰기(indent)할 것

그런데 목록 리스트를 자세히 보니 과일 이름이 알파벳 순으로 정렬도 안돼 있고, 과일도 거시기도 아닌 hankun 데이터가 들어가 있습니다. 이걸 하나하나 수작업으로 하기에는 엄청 빡세니까 반복문을 사용하여 데이터를 처리하겠습니다.

fruits = ['banana', 'apple', 'grapes', 'hankun', 'cherry']
fruits_copy = fruits

fruits.sort()

print( fruits )
print( fruits_copy ) # fruits와 동일한 결과값 출력 

del fruits[ len(fruits) - 1 ]

for fruit in fruits:
	print( fruit.title() )

 알파벳 순으로 정렬하는 메서드는 sort()를 사용합니다. 그런데 한 가지 이상한 점이 정렬을 하기 전에 fruits 리스트를 fruits_copy에 복사를 했는데도, 완벽하게 두 개의 리스트 데이터가 연동이 되어 동일하게 나오고 있습니다. 보통은 fruits = fruits.sort() 같이 처리를 해줘야 하지만 리스트는 조금 다른 방식으로 작동을 합니다. 뒤에서 더 설명하겠습니다.

 

len() 함수는 리스트의 총길이, 즉 리스트 내용물의 개수를 카운트해줍니다. 과일 목록은 총 5개가 있고 거기에서 -1을 하면 fruits의 4번째 요소가 del 키워드로 리스트에서 삭제가 됩니다. 그럼 목록 중에 어떤 데이터가 삭제되었을까요?

fruits = ['banana', 'apple', 'grapes', 'hankun', 'cherry']
fruits_copy = fruits[:]

fruits.sort()

print( fruits )
print( fruits_copy ) # fruits와 다른 결과값 출력

fruits_copy = fruits[0:4]

for fruit in fruits_copy:
    print( fruit )
    fruit = fruit.title()

print( fruits_copy )

리스트의 경우는 다른 변수 데이터에 복사를 할 경우 [:] 키워드를 사용합니다. 배열 즉 리스트를 사용할 때는 대괄호[]를 쓴다고 말씀드렸는데, [0:4] 이런 표현처럼 대괄호에 첫 번째가 시작 지점, 다음 중간에 콜론(:) 찍고 두 번째가 끝 지점으로 데이터를 복사합니다. 시작과 끝이 없다면 리스트 전부를 복사한다는 뜻입니다.

소스 코드 끝부분의 반복문 fruit 데이터를 title() 함수로 변경해서, 다시 fruit 변수에 넣었는데 과연 fruits_copy 리스트 안의 데이터는 변경이 되었을까요?

숙제

댓글