본문 바로가기

Python 기초

파이썬 예제-3. 반복문

*이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*

문제1

for문을 이용하여, '😀'를 이용하여 아래와 같은 모형을 만들어보자

😀😀😀😀😀
😀😀😀😀😀
😀😀😀😀😀
😀😀😀😀😀
😀😀😀😀😀

위문제는 5*5모양인 이모티콘을 출력하는 문제입니다. for문을 이용하여 출력한다면, 길이가 5이므로 range(5)가 들어갑니다. 첫번째 for문은 행, 두번째 for문은 열 위치로 오게 만듭니다.

for i in range(5): #i가 행
    for j in range(5):  #j가 열
        print('😀', end=' ')
    print()

문제2

'😀'를 이용하여 아래와 같은 모형을 만들어보자

😀😀😀😀😀
😀😀😀😀
😀😀😀
😀😀
😀

i는 행방향, j는 열방향이고, 1열 5개, 2열 4개 ... 5열 1개 등 열 갯수와 행 순서가 반비례합니다. 행은 고정시키고, 열의 시작과 끝을 range(i,5)로 행과 반비례가 오게 만듭니다.

for i in range(5): #열방향, 0,1,2,3,4
    for j in range(i,5): #j는 행갯수 출력, 5,4,3,2,1-> 0~4, 1~4, 2~4, 3~4,4
                #열 순서와 행 순서 반비례
        print('😀', end=' ')
    print()

문제3

😀
😀😀
😀😀😀
😀😀😀😀
😀😀😀😀😀

행과 열이 정비례합니다. 1행1개, 2행2개,... 5행 5개 등, 열에 해당되는 j는 행의 인덱스보다 1개 더 많습니다. 

for i in range(5):
    for j in range(i+1): #i=1,j=1, i=2,j=2, ..., i=5,j=5
                #행 갯수=열 갯수
        print('😀', end=' ')
    print()

문제4

2단부터 9단까지 구구단을 출력하는 프로그램을 만들어보자

  • 단, for문과 while문을 사용하여 각각 별도로 작성

외부 for문은 첫번째 숫자이므로 1단부터 9단까지 표현을 위해 범위가 range(1,10)입니다. 내부 for문 또한 X1~X9까지 되므로 range(1,10)입니다. 1행1열 1행2열...1행9열까지 진행되고 다시 2행으로 돌아가야 하기 때문에 마지막 print()는 공백으로 둬야 합니다. 내부 for문으로 출력해야 하기 때문에 출력서식은 내부 for문안에 작성합니다.

for i in range(1,10): #i는 1부터 9 까지
    for j in range(1,10): # j는 1부터 9까지 출력 (2,1),(2,2),...,(9,9)
                        #(i,j)->(1,1)(1,2)(1,3)...(1,9)->(2,1)...(2,9)....(9,8)(9,9)
        print(f'{i} X {j} = {i*j}') # j가 내부 for문과 같이 있으면 오류->안쪽에
            # indented block 들여쓰기
    print() #j=9일때 넘어감

i=2
while i <=9:
j=2
    print(f'{i}단')
    while j<=9:
        print(f'{i}*{j}={i*j}')
        j+=1 #여기까지 j=9
    i+=1 #여기서 j=10
    j=1 #다시 j를 1로 바꿈
    print()