[TIL_Python]중첩루프

HYEYOON·2021년 1월 14일
0

1. for과 if조건문을 사용하여 계단식으로 (*) 출력하기

*
**
***

반복문 안에 반복문이 들어가는 형태를 중첩 루프라고 한다.
반복 문의 루프 인덱스 변수는 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값 출력,\문자도 출력 

2. 사각형으로 별 출력하기(5*5)

for i in range(5):	#5번 반복, 바깥쪽 루프는 세로 방향 
	for j in range(5): 	#5번 반복, 안쪽 루프는 가로 방향
    	print('*', end = '')	#별 출력, 줄바꿈 x
    print()
    
*****
*****
*****
*****
*****    

print는 기본적으로 end = '\n'상태라서 아무것도 지정하지 않아도 \n은 출력된다!

2.1 사각형 모양 바꾸기(7*3)

for i in range(3):            # 3번 반복. 세로 방향
    for j in range(7):        # 7번 반복. 가로 방향
        print('*', end='')    # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
    print()    # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감
               # (print는 출력 후 기본적으로 다음 줄로 넘어감)
*******
*******
*******

3. 계단식으로 별 출력하기

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일때 뿐이므로 별이 한개만 출련된다.

4. 대각선으로 별 출력하기

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()
*
 *
  *
   *
    *

코딩도장 19.6 심사문제: 산모양으로 별 출력하기

(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
결과:

    *
   ***
  *****
 *******
*********

Looping Dictionary

List와 마찬가지로 dictionary도 for 반복구문(loop)을 사용하여 요소 하나 하나를 가지고 반복되는 로직을 실행 시킬 수 있다. 다만 dictionary는 각 요소가 key 와 value로 이루어져 있다.

  • key값 말고 value 값으로 처음부터 looping하는 방법
  • key, value값 둘다 가지고 for반복구문 실행하는 방법
    = item함수 사용 , key, value값을 tuple로 리턴해준다.
profile
Back-End Developer🌱

0개의 댓글

관련 채용 정보