시리즈 이전글입니다.
2021/01/27 - [파이썬/주식 자동매매] - Python 키움API 자동매매프로그램 개발-15.Python 기초편 반복문(2) while 사용
for 변수 in 반복가능객체:
for 변수 in 반복가능객체:
반복할 코드
while 조건:
while 조건:
반복할 코드
중첩 반복문이란 반복할 코드 안에 또 다른 반복문이 있는 형태를 말합니다.
물론 for와 while을 혼합해서 사용하는 것도 가능합니다.
for 변수 in 반복가능객체:
while 조건:
반복할 코드
while 조건:
for 변수 in 반복가능객체:
반복할 코드
반복문 안에 또 다른 반복문이 있다는 것이 조금 낯설 수도 있습니다.
사용 예를 한 번 들어보겠습니다.
for문을 이용한 반복문을 배울 때 구구단중 2단을 출력하는 코드를 다음처럼 만들었습니다.
for i in range(1,10):
print("{} * {} = {}".format(2, i, 2*i))
그런데 여기서 2단뿐만 아니라 9단까지 출력하려면 어떻게 할까요?
아래 코드에서 2라고 넣은 부분을 변수로 대신해 이 값을 2부터 9까지 또 반복시키면 됩니다.
"{} * {} = {}".format(2, i, 2*i)
기존에 사용한 반복문 for i in range(1,10)은 각각의 단마다 필요하니 그대로 유지한 상태에서 다음과 같이 코드를 만듭니다.
for j in range(2,10):
for i in range(1,10):
print("{} * {} = {}".format(j, i, j*i))
2를 대신해 j라는 변수를 이용한 반복문을 넣어 구구단 전체를 출력하도록 만들었습니다.
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
중첩 반복문을 사용할 때 주의해야할 점은 사용하는 변수명이 겹치지 않게 하는 것입니다.
첫번째로 등장하는 반복문에서 사용한 변수 i와 두번째 반복문에서 사용하는 변수 i는
별개로 인식되지 않고 동일하게 인식됩니다.
for i in range(2,10):
for i in range(1,10):
print("{} * {} = {}".format(i, i, i*i))
결과를 보면 다음처럼 나옵니다.
1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
4 * 4 = 16
5 * 5 = 25
6 * 6 = 36
7 * 7 = 49
8 * 8 = 64
9 * 9 = 81
1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
첫번째 반복문 for i in range(2, 10)에서 i가 2부터 9까지 시작하지만
두번째 반복문에 진입하게 되면 동일한 변수명을 사용하기에 i값이 range(1, 10)에 따라 다시 할당됩니다.
이렇게 변수명을 중복해서 사용할 경우 가장 최근 반복문을 기준으로 변수값이 정해지므로
의도하지 않는 결과가 나올 수 있다는 것을 주의하시길 바랍니다.
같이 보시면 좋을 글
2021/02/10 - [파이썬/주식 자동매매] - 주식매매프로그램 개발 노하우, 소스를 담은 전자책이 발간되었습니다.
2021/01/28 - [파이썬/주식 자동매매] - Python 키움API 자동매매프로그램 개발-17.Python 기초편 반복문(4) 반복문 제어
'파이썬 > 주식 자동매매' 카테고리의 다른 글
Python 키움API 자동매매프로그램 개발-18.Python 기초편 함수(1) (0) | 2021.01.28 |
---|---|
Python 키움API 자동매매프로그램 개발-17.Python 기초편 반복문(4) 반복문 제어 (0) | 2021.01.28 |
Python 키움API 자동매매프로그램 개발-15.Python 기초편 반복문(2) while 사용 (0) | 2021.01.27 |
Python 키움API 자동매매프로그램 개발-14.Python 기초편 반복문(1) for 사용 (0) | 2021.01.26 |
Python 키움API 자동매매프로그램 개발-13.Python 기초편 조건문(2) (1) | 2021.01.26 |
댓글