본문 바로가기

Python/Practice

Q. 6, 7단을 제외한 구구단을 만들어보세요

a = 2

while a <= 9:
    print()
    print(f"{a}단을 출력해보자")

    b = 1
    while b <= 9:
        result = a * b
        if a != 6 and a != 7:        # a가 (6이 아니거나 + 7이 아닌경우)를 출력하겠다
        # if not (a == 6 or a == 7):      # a가 (6이거나 7이) '아닌'경우를 출력하겠다

            print(f"{a} X {b} = {result}")
        b = b + 1

    a = a + 1

---> 사실 출력만을 막은거지, 연산은 돌아감.

 

 

방법01. 연산자체를 안하는 법?

a = 2

while a <= 9:

    b = 1
    while b <= 9:
        if a == 6 or a == 7:
            break               # 안쪽 while문을 탈출해서 a = a + 1로 넘어가는거임

        result = a * b
        print(f"{a} X {b} = {result}")
        b = b + 1

    a = a + 1

--> 처음부터 while을 안 만나면 되잖아

 

 

방법02. while안만나게

a = 2

while a <= 9:
    print()
    print(f"{a}단을 출력해보자")

    b = 1
    if not(a == 6 or a == 7):
        while b <= 9:
                result = a * b
                print(f"{a} X {b} = {result}")
                b = b + 1

    a = a + 1         
    
    # 드래그 + tab : 전체 오른쪽으로 / 드래그 + shift + tab : 전체 왼쪽으로
a = 2

while a <= 9:
    print()
    print(f"{a}단을 출력해보자")

    if a == 6 or a == 7:
         a = a + 1      # 이게 continue 밑에 있으면 '6단을 출력해보자'가 무한루프로 돌아감.
         		왜? 6만나면 계속 continue걸리니까!!!!
         continue       # a가 6이면 a+1이 실행되어 7이되고 continue, 그 밑으로 넘어가지 않는다.
         		7도 8이되어 continue. 8이면 밑으로 내려가겠지?
                    

    b = 1
    while b <= 9:
            result = a * b
            print(f"{a} X {b} = {result}")
            b = b + 1

    a = a + 1

 

 

=========== 연습 다시 ===========

# 연습01. continue이용

print("--------연습01---------")

x = 2

while x <= 9:
     
     y = 1
     while y <= 9:
        if y == 6 or y == 7:
             y = y + 1
             continue
        
        result = x * y
        print(f"{x} X {y} = {result}")
        y = y + 1
     
     x = x + 1

## y값이 변하는게 지금 먼저오면안돼
## 지금 내가쓴건 2단에서 x6, x7 / 3단에서 x6, x7을 안하겠다는 뜻임



# 연습 02. continue이용-2
print("--------연습02---------")

x = 2   # x단

while x <= 9:
    if x == 6 or x == 7:
         x = x + 1
         continue

    y = 1
    while y <= 9:
        result = x * y
        print(f"{x} X {y} = {result}")
        y = y + 1

    x = x + 1



# 연습03. break이용

x = 2

while x<= 9:

    if x == 6 or x == 7:
         x = x + 1
         break
    
    y = 1
    while y <= 9:
        result = x * y
        print(f"{x} X {y} = {result}")
        y = y + 1
     
    x = x + 1
    
    ## 이렇게하면 6단을 만나면 break걸려서 밑에 모든게 안나옴.



# 연습04. break이용-2

x = 2

while x<= 9:

    y = 1
    while y <= 9:
        if x == 6 or x == 7:
             break
        
        result = x * y
        print(f"{x} X {y} = {result}")
        y = y + 1
     
    x = x + 1

    ## break는 바로앞에있는 while문을 빠져나가는것.
    ## 지금 while이 2개지? 가장 가까운걸 빠져나가서 더 큰 while을 다시 도는거야!!!