소연의_개발일지

while문

while문은 조건이 참(True)인 동안 반복적으로 실행됩니다. while문의 구조는 다음과 같습니다.

while 조건:
    코드 블록

조건이 참일 경우, 코드 블록이 반복적으로 실행됩니다. 조건이 참이 아니면, while문을 빠져나가고 다음 코드로 넘어갑니다.

 

예를 들어, 1부터 5까지의 숫자를 출력하는 코드를 while문으로 구현하면 다음과 같습니다.

i = 1
while i <= 5:
    print(i)
    i += 1

위 코드에서는 i가 5보다 작거나 같은 동안, i를 출력하고 1씩 증가시킵니다. 따라서 1부터 5까지의 숫자가 출력됩니다.

 

 

예제 풀기(나무 찍기)

tree = 1
while tree < 10+1:
    print(f"나무를 {tree}번 찍었습니다.")
    tree += 1

 

나무를 1번 찍었습니다.
나무를 2번 찍었습니다.
나무를 3번 찍었습니다.
나무를 4번 찍었습니다.
나무를 5번 찍었습니다.
나무를 6번 찍었습니다.
나무를 7번 찍었습니다.
나무를 8번 찍었습니다.
나무를 9번 찍었습니다.
나무를 10번 찍었습니다.

 


파이썬으로 구구단 찍기

구구단을 세로로 찍기

##구구단 ver2
num = 2
i = 1
while num < 9 + 1:
    while i < 9 + 1:
        print(f"{num} x {i} = {num * i}")
        i += 1
    i = 1  # 이부분을 넣지 않아서 오류가 생겼다. i가 10으로 고정되어 있어 내부 while문으로 들어가지 못함
    num += 1

구구단 다른버전(결과는 같다)

 

#구구단 ver3
num = 2
i = 1
while i < 9 + 1 and num < 9+1:
    print(f"{num} x {i} = {num * i}")
    i += 1
    if i == 10:
        i = 1
        num +=1

출력결과

2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

 

 

구구단을 가로로 찍기

이 문제의 포인트 end = “”사용하기

end=""print() 함수에서 출력 결과의 끝을 지정하는 매개변수입니다. 기본값은 개행문자(\n)이며, 이를 end 매개변수를 사용하여 변경할 수 있습니다. end=""를 사용하면 출력 결과의 끝에 아무 문자도 추가하지 않습니다.

 

 

:2d를 사용하여 결과값이 오른쪽으로 정렬되게 만들었다.

num = 2
i = 1
while i < 9+1:
    while num < 9 + 1:
        print(f"{num} x {i} = {num*i:2d}", end="\\t")
        num+=1
    print('')
    num = 2
    i +=1

출력결과

2 x 1 =  2      3 x 1 =  3      4 x 1 =  4      5 x 1 =  5      6 x 1 =  6      7 x 1 =  7      8 x 1 =  8      9 x 1 =  9
2 x 2 =  4      3 x 2 =  6      4 x 2 =  8      5 x 2 = 10      6 x 2 = 12      7 x 2 = 14      8 x 2 = 16      9 x 2 = 18
2 x 3 =  6      3 x 3 =  9      4 x 3 = 12      5 x 3 = 15      6 x 3 = 18      7 x 3 = 21      8 x 3 = 24      9 x 3 = 27
2 x 4 =  8      3 x 4 = 12      4 x 4 = 16      5 x 4 = 20      6 x 4 = 24      7 x 4 = 28      8 x 4 = 32      9 x 4 = 36
2 x 5 = 10      3 x 5 = 15      4 x 5 = 20      5 x 5 = 25      6 x 5 = 30      7 x 5 = 35      8 x 5 = 40      9 x 5 = 45
2 x 6 = 12      3 x 6 = 18      4 x 6 = 24      5 x 6 = 30      6 x 6 = 36      7 x 6 = 42      8 x 6 = 48      9 x 6 = 54
2 x 7 = 14      3 x 7 = 21      4 x 7 = 28      5 x 7 = 35      6 x 7 = 42      7 x 7 = 49      8 x 7 = 56      9 x 7 = 63
2 x 8 = 16      3 x 8 = 24      4 x 8 = 32      5 x 8 = 40      6 x 8 = 48      7 x 8 = 56      8 x 8 = 64      9 x 8 = 72
2 x 9 = 18      3 x 9 = 27      4 x 9 = 36      5 x 9 = 45      6 x 9 = 54      7 x 9 = 63      8 x 9 = 72      9 x 9 = 81

 

 

 

구구단을 3단씩 찍기

#구구단 ver1
num = 2
i = 1
while num < 9:
    while i < 9+1:
        print(f"{num} x {i} = {num * i}\\t{num+1} x {i} = {num * i}\\t{num+2} x {i} = {num * i}")
        i+=1
    i = 1 # 이부분을 넣지 않아서 오류가 생겼다. i가 10으로 고정되어 있어 내부 while문으로 들어가지 못함
    num += 3
    print("\\n")

출력결과

2 x 1 = 2       3 x 1 = 2       4 x 1 = 2
2 x 2 = 4       3 x 2 = 4       4 x 2 = 4
2 x 3 = 6       3 x 3 = 6       4 x 3 = 6
2 x 4 = 8       3 x 4 = 8       4 x 4 = 8
2 x 5 = 10      3 x 5 = 10      4 x 5 = 10
2 x 6 = 12      3 x 6 = 12      4 x 6 = 12
2 x 7 = 14      3 x 7 = 14      4 x 7 = 14
2 x 8 = 16      3 x 8 = 16      4 x 8 = 16
2 x 9 = 18      3 x 9 = 18      4 x 9 = 18

5 x 1 = 5       6 x 1 = 5       7 x 1 = 5
5 x 2 = 10      6 x 2 = 10      7 x 2 = 10
5 x 3 = 15      6 x 3 = 15      7 x 3 = 15
5 x 4 = 20      6 x 4 = 20      7 x 4 = 20
5 x 5 = 25      6 x 5 = 25      7 x 5 = 25
5 x 6 = 30      6 x 6 = 30      7 x 6 = 30
5 x 7 = 35      6 x 7 = 35      7 x 7 = 35
5 x 8 = 40      6 x 8 = 40      7 x 8 = 40
5 x 9 = 45      6 x 9 = 45      7 x 9 = 45

8 x 1 = 8       9 x 1 = 8       10 x 1 = 8
8 x 2 = 16      9 x 2 = 16      10 x 2 = 16
8 x 3 = 24      9 x 3 = 24      10 x 3 = 24
8 x 4 = 32      9 x 4 = 32      10 x 4 = 32
8 x 5 = 40      9 x 5 = 40      10 x 5 = 40
8 x 6 = 48      9 x 6 = 48      10 x 6 = 48
8 x 7 = 56      9 x 7 = 56      10 x 7 = 56
8 x 8 = 64      9 x 8 = 64      10 x 8 = 64
8 x 9 = 72      9 x 9 = 72      10 x 9 = 72

 

구구단을 3단씩 찍기 업그레이드 버전(9단까지 찍기)

2중 while문 사용(if문 넣은)

num = 2
i = 1
while num < 9:
    if num == 8:
        while i < 9+1:
            print(f"{num} x {i} = {num * i}\\t{num+1} x {i} = {num * i}")
            i+=1
    else:
        while i < 9+1:
            print(f"{num} x {i} = {num * i}\\t{num+1} x {i} = {num * i}\\t{num+2} x {i} = {num * i}")
            i+=1
    i = 1
    num += 3
    print("\\n")

출력결과

2 x 1 = 2       3 x 1 = 2       4 x 1 = 2
2 x 2 = 4       3 x 2 = 4       4 x 2 = 4
2 x 3 = 6       3 x 3 = 6       4 x 3 = 6
2 x 4 = 8       3 x 4 = 8       4 x 4 = 8
2 x 5 = 10      3 x 5 = 10      4 x 5 = 10
2 x 6 = 12      3 x 6 = 12      4 x 6 = 12
2 x 7 = 14      3 x 7 = 14      4 x 7 = 14
2 x 8 = 16      3 x 8 = 16      4 x 8 = 16
2 x 9 = 18      3 x 9 = 18      4 x 9 = 18

5 x 1 = 5       6 x 1 = 5       7 x 1 = 5
5 x 2 = 10      6 x 2 = 10      7 x 2 = 10
5 x 3 = 15      6 x 3 = 15      7 x 3 = 15
5 x 4 = 20      6 x 4 = 20      7 x 4 = 20
5 x 5 = 25      6 x 5 = 25      7 x 5 = 25
5 x 6 = 30      6 x 6 = 30      7 x 6 = 30
5 x 7 = 35      6 x 7 = 35      7 x 7 = 35
5 x 8 = 40      6 x 8 = 40      7 x 8 = 40
5 x 9 = 45      6 x 9 = 45      7 x 9 = 45

8 x 1 = 8       9 x 1 = 8
8 x 2 = 16      9 x 2 = 16
8 x 3 = 24      9 x 3 = 24
8 x 4 = 32      9 x 4 = 32
8 x 5 = 40      9 x 5 = 40
8 x 6 = 48      9 x 6 = 48
8 x 7 = 56      9 x 7 = 56
8 x 8 = 64      9 x 8 = 64
8 x 9 = 72      9 x 9 = 72

 

 


별찍기

1. 피라미드 찍기

num = int(input("정수 입력: "))
k = num +1
while num >0:
    print("#" * num, "*"* (2*(k-num)-1) )
    num -=1
정수 입력: 10
           *
          ***
         *****
        *******
       *********
      ***********
     *************
    ***************
   *****************
  *******************

 

2. 예쁜 트리(?)

num = int(input("정수 입력: "))
k = num +1
while num >0:
    print(" " * num, "*"* (2*(k-num)-1) )
    print(" " * num, "* " * (k - num))
    num -=1
정수 입력: 5
      *
      *
     ***
     * *
    *****
    * * *
   *******
   * * * *
  *********
  * * * * *

 

 

3.. 마름모 만들어보기

num = 10
k = num +1
while num > 0:
    print("#" * num, "*"* (2*(k-num)-1))
    num -=1
num = 10
while num >0:
    print("#" * (k - num), "*" * (2 * num - 1))
    num -= 1
########## *
######### ***
######## *****
####### *******
###### *********
##### ***********
#### *************
### ***************
## *****************
# *******************
# *******************
## *****************
### ***************
#### *************
##### ***********
###### *********
####### *******
######## *****
######### ***
########## *

 

4. 풍차만들기

num = int(input("정수 입력: "))
n = num
k = num+1
while n > 0:
    print("*" * (k - n), "#" * n ,"*" * n, "#" * (k - n))
    n -=1
n =num
while n > 0:
    print("#" * n, "*" * (k - n) ,"#" * (k - n), "*" * n )
    n -=1
정수 입력: 10
* ########## ********** #
** ######### ********* ##
*** ######## ******** ###
**** ####### ******* ####
***** ###### ****** #####
****** ##### ***** ######
******* #### **** #######
******** ### *** ########
********* ## ** #########
********** # * ##########
########## * # **********
######### ** ## *********
######## *** ### ********
####### **** #### *******
###### ***** ##### ******
##### ****** ###### *****
#### ******* ####### ****
### ******** ######## ***
## ********* ######### **
# ********** ########## *

 

 

5. 숫자 삼각형

num = int(input("정수를 입력하세요: "))
n = 1
m = 1
while m <num+1:
    while n < m+1:
        print(n, end=" ")
        n+=1
    n=1
    print()
    m +=1
정수를 입력하세요: 6
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6

 

 

6. 모래시계

num = int(input("정수를 입력하세요: "))
n = num
k = num + 1
while num > 0:
    print(" " * (k-num), "*" * (2*num-1))
    num -=1
while n > 0:
    print(" " * n, "*" * (2*(k-n)-1))
    n -=1
정수를 입력하세요: 10
  *******************
   *****************
    ***************
     *************
      ***********
       *********
        *******
         *****
          ***
           *
           *
          ***
         *****
        *******
       *********
      ***********
     *************
    ***************
   *****************
  *******************

 

 

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!