다음은 파이썬에서 for문 안에 for문을 사용하는 for문을 중첩하여 사용하는 법에 대해서 알아보도록 하겠습니다.
for문을 중첩하여 사용하는 방법에 대해 알아보기에 앞서 for문을 처음 사용해 보시는 분이라면 아래 링크를 통해 for문의 기본 문법 사용에 대해서 알아보고 오시는 것이 이해하는데 더욱 도움이 됩니다.
for문 안에 for문(중첩사용) 기본 문법
for문 안에 for문을 중첩하여 사용하는 기본 문법은 다음과 같습니다.
for 변수명1 in 시퀀스1:
#변수명1과 함께 실행할 코드
for 변수명2 in 시퀀스2:
#변수명2와 함께 실행할 코드
여기서 시퀀스1과 시퀀스2는 리스트, 범위 또는 모든 반복 가능한 객체를 의미하며, 외부 루프는 시퀀스1을 통해 반복하고 내부 루프는 시퀀스2를 통해 반복합니다.
시퀀스1의 하나의 값에서 내부 루프인 시퀀스 2의 모든 요소를 반복합니다. 결과적으로는 시퀀스 1과 2의 모든 값의 조합을 반복하게 되는데 설명으로 어렵게 느낄 수 있으니 아래 예시를 통해 알아보겠습니다.
for문 중첩하여 구구단 생성하기
for문을 이용하여 구구단을 생성하는 방법은 여러가지가 있지만 그 중 하나의 방법으로 for문을 중첩하여 사용하고, range를 이용해서 쉽게 구구단을 만들 수 있습니다.
for i in range(2, 10): # 첫번째 for문
for j in range(1, 10): # 두번째 for문
print(i, '*', j, '=' i * j)
# 결과
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
...
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
여기서 첫번째 for문은 start 부분에 2를 입력하여 2부터 시작하고, stop에 10을 입력했으므로 10 이전인 9까지 실행하게 됩니다.
두번째 for문은 첫번째 for문의 시작값인 2를 1부터 9까지 반복합니다.
따라서 출력문을 보면 첫번째 for문의 i 값인 2, 다음으로는 문자열은 *를 출력, 두번째 for문의 j 값인 1, 문자열 =, i와 j를 곱한값을 순서대로 출력합니다.
그러면 2 * 1 = 2를 첫번째로 출력하게 되는 것이죠. 첫번째 for문의 i값인 2를 두번째 for문의 1에서 9까지 반복한 뒤 다음 i값인 3,4,5,... 순으로 반복 수행하게 됩니다.
목록의 숫자합 구하기
다음은 numbers라는 리스트 안에 있는 값들의 합을 구하는 방법입니다.
numbers = [1, 2, 3, 4, 5]
sum = 0
for number in numbers:
sum += number
print(f"The sum of numbers is {sum}")
#결과
The sum of numbers is 15
먼저 리스트의 값을 하나씩 누적해서 저장해야 하는 변수가 필요하기 때문에 sum이라는 초기값을 줍니다.
그리고 for문을 이용하여 sum += number를 이용하여 number 리스트에 있는 값을 누적하여 합한 값을 구합니다. 여기서 +=이라는 기호를 사용하면 sum = sum + number와 같은 의미를 가집니다.
다양한 연산 기호에 대해서 알고 싶으시다면 다음 링크를 참고해주세요
sum의 초기값은 0이기 때문에 0 + 1이 sum 값이 되고 다음 반복에서는 sum이 1이 되고 두번째 리스트 값인 2를 sum과 더하는 과정을 반복하기 때문에 전체 리스트에 있는 항목들의 값을 합하는 효과를 볼 수 있습니다.
print 문을 보시면 따옴표 바깥쪽에 f라는 단어가 있는데 출력형식을 나타내는 방법입니다.
앞서 구구단을 만들 때와 마찬가지로 print("The sum of numbers is", sum)이라고 사용해도 되지만 f를 이용하여 출력하면 한번에 문자열과 {}안에 있는 변수값을 인식할 수 있습니다.
자세한 출력형식이 알고 싶으시다면 아래 링크를 참고해주세요.
특정조건 반복문 종료 (break 명령어)
데이터에 이상한 값이 들어왔거나 하는 경우 반복문을 조기 종료해야 하는 경우가 있는데, 이런 경우 정상적인 종료 조건이 충족되지 않더라도 반복문을 조기 종료할 수 있습니다.
이때 사용되는 것이 break 명령어인데 어떻게 실행되는지 예제를 통해 알아보겠습니다.
fruits = ["apple", "banana", "cherry", "date", "fig", "grape"]
for fruit in fruits:
if fruit == "date":
break
print("I like", fruit)
# 결과
I like apple
I like banana
I like cherry
여기서 리스트에는 과일 이름이 들어있는데 잘못 입력된 'date'라는 데이터가 있다는 것을 볼 수 있습니다. 이렇게 date가 입력되었을 경우에는 출력을 중단하고 싶다면 if문과 break 명령어를 사용해서 중단할 수 있습니다.
과일 목록을 fruits라는 이름으로 주고, for문을 이용하여 목록안에 있느 각 과일을 반복하여 실행합니다. 이 때 for문 안에 if문을 보면 만약 과일의 목록이 date라면 break문을 만나 반복문을 중단하게됩니다.
그렇지 않다면 아래 print 문을 만나 I like '과일명'을 출력합니다.
따라서 결과를 보면 date가 나오기 전 I like '과일명'이 출력되고, 목록의 date가 나와 반복문을 중단했기 때문에 그 다음으로 나오는 fig와 grape는 출력되지 않은 것을 볼 수 있습니다.
if문에 대해 잘 모르신다면 아래 링크를 참고해주세요.
'방구석코딩 > 파이썬 기초문법' 카테고리의 다른 글
[파이썬] break 문의 사용법 (1) | 2023.11.27 |
---|---|
[파이썬] while문 이해, 무한루프 탈출(break) (1) | 2023.11.20 |
[파이썬] for문 range(범위) 사용법 (1) | 2023.11.06 |
[파이썬] 조건문 if, elif, else 문, 조건이 여러개인 경우 (1) | 2023.10.30 |
[파이썬] isinstance 함수 사용법 (변수 유형, 데이터 유형 확인) (1) | 2023.10.23 |
댓글