지난 튜토리얼에서 우리는 while 루프와 코드 블록을 여러 번 실행하는 방법에 대해 배웠습니다.
파이썬에는 "for 루프" 및 "중첩 루프"와 같은 다른 종류의 루프가 있습니다. 그들이 어떻게 사용되는지 봅시다.
루프
문자열과 같은 컬렉션의 항목을 반복하기 위해 "for 루프"를 사용합니다. 문자열은 일련의 문자이므로 컬렉션처럼 보입니다. 따라서 for 루프를 사용하여 문자열의 각 문자를 반복한 다음 이를 사용하여 작업을 수행할 수 있습니다.
여기에 예제가 있습니다.
"for"를 입력하고 변수를 입력한 다음 문자열을 입력합니다.
for item in 'Python':
여기서 "항목"은 Python이라는 단어의 문자를 의미합니다. 루프의 첫 번째 반복에서 "item"은 'P'를 의미하고 두 번째 반복은 'y'를 의미하는 식입니다. 이것을 실행하자
이 문자열의 각 문자가 새 줄에 인쇄되는 것을 볼 수 있습니다.
다른 예를 살펴보겠습니다. Python에서는 대괄호를 사용하여 목록을 정의할 수 있습니다. 대괄호를 사용하여 목록을 정의하겠습니다.
for item in ['Shahbaz', 'Aayush', 'Jay']:
print(item)
이제 세 개의 이름을 별도의 줄에 나열합니다.
이 설정에서 숫자 목록을 사용할 수도 있습니다. 0에서 9까지의 모든 숫자를 입력하는 대신 "범위" 기능을 사용하여 단순화하겠습니다. 어떻게 되었는지 봅시다.
for item in range(10):
print(item)
0으로 시작하지 않도록 프로그래밍할 수도 있습니다.
for item in range(5, 10):
터미널에 5에서 9까지의 숫자를 인쇄합니다.
"범위" 기능은 입력으로 단계를 수행할 수도 있습니다. 따라서 다음과 같이 작성하면:
for item in range(5, 10, 2):
5, 7, 9를 인쇄합니다. 즉, 반복할 때마다 두 단계 앞으로 이동합니다.
운동
이제 여기 당신을 위한 운동이 있습니다. 장바구니에 있는 모든 항목의 총 비용을 계산하는 프로그램을 작성하고 싶습니다. 10, 20, 30과 같은 가격 목록이 있다고 가정해 보겠습니다. for 루프를 사용하여 가상 장바구니에 있는 모든 항목의 총 비용을 계산하기를 원합니다.
당신의 두뇌를 작동시키고 당신이 그것을 할 수 있는지보십시오. 컨닝 하지마.
해법
이렇게 가격을 나열하여 시작할 수 있습니다.
prices = [10, 20, 30]
이제 첫 번째 반복에 대해 0부터 시작하는 총 가격에 대한 변수를 추가합니다.
total = 0
여기 for 루프가 있습니다.
for price in prices:
total = total + price
// 다음과 같이 단순화할 수 있습니다. total += price
print(f"Total: {total}")
중첩 루프
파이썬에서 중첩 루프를 사용한다는 것은 기본적으로 다른 루프 안에 하나의 루프를 추가하는 것을 의미하며, 이 기술을 사용하면 놀라운 일을 할 수 있습니다. 예를 들어 좌표 목록을 쉽게 생성할 수 있습니다.
좌표는 아시다시피 'x'와 'y' 값의 조합입니다. 0과 0이라고 합시다. 이제 이와 같은 좌표 목록을 생성하고 싶다고 가정해 보겠습니다. 0과 0이 있고, 0과 1이 있고, 0과 2가 있습니다.
다음으로 'x'를 변경하겠습니다. 우리는 'x'에 대해 1을 사용할 것이고 다시 한 번 'y' 좌표에 대해 이 3개의 값을 사용할 것입니다.
중첩 루프를 사용하여 이러한 좌표를 쉽게 생성할 수 있습니다.
보여 드리겠습니다.
for x in range(4):
for y in range(3):
print(f'({x}, {y}')
출력을 확인해보자:
이 프로그램이 어떻게 실행되는지 정확히 설명하겠습니다. 외부 루프의 첫 번째 반복에서 'x'는 0입니다. 이제 2행에 있습니다. 여기에 내부 루프라고 하는 새 루프가 있습니다. 이 내부 루프에서 첫 번째 반복에서 'y'는 0이 될 것이므로 터미널에 0과 0이 인쇄됩니다.
이제 컨트롤은 라인 2 또는 내부 루프로 돌아갑니다. 이 두 번째 반복에서 'y'는 1로 설정되지만 여전히 외부 루프의 첫 번째 반복에 있습니다. 따라서 'x'는 여전히 0이지만 이제 'y'는 1로 증가합니다.
이것이 터미널에 0과 1이 표시되는 이유입니다. 이것은 내부 루프가 실행될 때까지 계속되고 인터프리터는 외부 루프로 다시 이동하고 이 프로세스는 외부 루프가 완료될 때까지 계속됩니다.
과제
여기 당신을 위한 운동이 있습니다. 그러나 이것은 지금까지 했던 운동보다 조금 더 어렵습니다.
중첩 루프를 사용하여 다음 'F' 모양을 그리는 코드를 작성합니다.
해법
numbers = [5, 2, 5, 2, 2]
for x_count in numbers:
output = ''
//출력 변수를 빈 문자열로 재설정할 것입니다.
for count in range(x_count):
output += 'x'
print(output)
중첩 루프를 사용하지 않고 이를 실행하는 훨씬 간단한 방법이 있습니다. 나는 당신이 알아낼 수 있도록 남겨 둡니다.
마무리
여러분들도 강의할 때마다 뜨거워지는 걸 느끼시나요?
확실히 그런 느낌이 듭니다. 훨씬 이해하기 쉽게 만들었습니다.
다음 강의로 문제를 해결해 보겠습니다.
댓글을 남겨주세요.