*
**
***
반복문 안에 반복문이 들어가는 형태를 중첩 루프라고 한다.
반복 문의 루프 인덱스 변수는 index의 첫 글자를 따서 i를 사용한다.
반복문 안에 반복문이 들어갈 때 변수 이름을 i다음 알파벳 순서대로 j,k로 짓는것이 관습이다.
for i in range(5): #5번 반복. 바깥쪽 루프는 세로방향
for j in range(5): #5번 반복, 안쪽 루프는 가로 방향
print('j:',j,sep='', end=' ') #j값 출력, end에 ''를 지정하여 줄바꿈 대신 한 칸 띄움.
print('i:',i,'\\n',sep='') #i값 출력,\문자도 출력
for i in range(5): #5번 반복, 바깥쪽 루프는 세로 방향
for j in range(5): #5번 반복, 안쪽 루프는 가로 방향
print('*', end = '') #별 출력, 줄바꿈 x
print()
*****
*****
*****
*****
*****
print는 기본적으로 end = '\n'상태라서 아무것도 지정하지 않아도 \n은 출력된다!
for i in range(3): # 3번 반복. 세로 방향
for j in range(7): # 7번 반복. 가로 방향
print('*', end='') # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
print() # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감
# (print는 출력 후 기본적으로 다음 줄로 넘어감)
*******
*******
*******
for i in range(5):
for j in range(5):
if i <= j:
print('*',end=' ')
print()
*
**
***
****
*****
첫번째 줄에 별 1개 , 두번째 줄에 별 2개, 세번째 줄에 별 3개
=별의 개수와 세로 방향 줄의 위치와 비례하기 때문에 조건식을 세로변수인 i에 맞춰야한다.
i가 0일때는 j가 0부터 4까지 반복하지만 조건식에 의하면 j가 0일때 뿐이므로 별이 한개만 출련된다.
for i in range(5):
for j in range(5):
if j == i :
print('*',end=' ')
print()
*
*
*
*
*
그냥 세로로 *
이 출력된다.
문자를 출력하지 않으면, 다음 문자는 현재 위치에 출력되기 때문에 모두 왼쪽으로 몰리게된다.
j == i
가 아닐때 공백을 출력해줘야한다.
for i in range(5):
for j in range(5):
if j == i :
print('*',end=' ')
else:
print(' ',end=' ')
print()
*
*
*
*
*
(1시간 걸림... 쥬륵)
표준 입력으로 삼각형의 높이가 입력됩니다. 입력된 높이만큼 산 모양으로 별을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 이때 출력 결과는 예제와 정확히 일치해야 합니다. 모양이 같더라도 공백이나 빈 줄이 더 들어가면 틀린 것으로 처리됩니다.
답:
height = int(input())
for i in range(height):
for j in reversed(range(height)):
if i < j:
print(' ',end ='')
else:
print('*',end = '')
for j in range(height):
if i > j:
print('*', end = '')
print()
ex)
입력: 5
결과:
*
***
*****
*******
*********
List와 마찬가지로 dictionary도 for 반복구문(loop)을 사용하여 요소 하나 하나를 가지고 반복되는 로직을 실행 시킬 수 있다. 다만 dictionary는 각 요소가 key 와 value로 이루어져 있다.