본문 바로가기
sbs 아카데미 학원 수업/파이썬 수업 메모 (SBS 아카데미 학원)

파이썬 수업 3일차 - While, break, Continue (Sbs아카데미)

by demianpark127 2024. 11. 23.
SMALL

https://colab.research.google.com/

 

Google Colab

 

colab.research.google.com

 

Colaboratory 

파이썬 코딩하는 곳

x = int (input("X :"))
y = int (input("Y :"))

if x > 0 and y > 0: print("제 1 사분면")
elif x < 0 and y > 0: print("제 2 사분면")
elif x < 0 and y < 0: print("제 3 사분면")
elif x > 0 and y < 0: print("제 4 사분면")
else : print("어느 사분면에도 없습니다.")

 

yn = int(input())

#4의 배수이자, 100의 배우가 아닌 경우
if yn % 4 == 0 and yn % 100 != 0 :
  print(1)
elif yn % 400 == 0 :
  print(1)
else :
  print(0)

# 400의 배수인 경우

 

# 14시 30분부터
# 20분 동안 구웠습니다
# -> 14시 50분에 종료

#start time
stt = input()
#loading time
id = input()

# split(" ")
# stt = "14 30"
#hout, minute
h, m = stt.split()

#print(h, end=" ")
#print(m)
# "14" -> 14
h = int(h)
m = int(m)

# 요리종료된 시간

if m >= 60 :
  h += 1
  m %= 60
if h >= 24 :
 h %= 24

 print(h, m)

 

 

 

 


파이썬 while문 설명해주기

(ChatGPT)

파이썬의 while문은 특정 조건이 참(True)인 동안 계속해서 코드를 반복 실행하는 반복문입니다. 조건이 거짓(False)이 되면 반복문이 종료됩니다.

기본 문법

python
코드 복사
while 조건식: 반복할 코드
  1. 조건식:
    • 참(True)인 동안 반복문 내부의 코드 블록이 실행됩니다.
    • 조건식이 거짓(False)이 되면 반복이 종료됩니다.
  2. 반복할 코드:
    • 들여쓰기를 통해 반복문 안에 실행할 코드 블록을 작성합니다.

예제 1: 기본적인 while문

python
코드 복사
i = 0 while i < 5: # i가 5보다 작을 때까지 반복 print(i) i += 1 # i 값을 1씩 증가

출력:

코드 복사
0 1 2 3 4

예제 2: 사용자 입력을 받을 때 사용

python
코드 복사
user_input = "" while user_input != "exit": # 사용자가 'exit'를 입력하면 종료 user_input = input("종료하려면 'exit'를 입력하세요: ") print(f"입력값: {user_input}")

무한 반복

조건이 항상 참인 경우 while문은 무한히 반복됩니다.

python
코드 복사
while True: # 항상 참이므로 무한 반복 print("무한 반복 중!") break # break를 사용해 반복문 종료

break와 continue

  • break: 반복문을 즉시 종료합니다.
  • continue: 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.

예제: break와 continue 활용

python
코드 복사
i = 0 while i < 10: i += 1 if i == 5: continue # 5는 건너뛰고 다음 반복 진행 if i == 8: break # i가 8이면 반복문 종료 print(i)

출력:

코드 복사
1 2 3 4 6 7

주의사항

  1. 조건 갱신을 잊지 말 것:
    • 조건이 항상 참으로 유지되면 무한 루프가 발생합니다.
    python
    코드 복사
    i = 0 while i < 5: print(i) # i += 1이 없으면 무한 루프 발생!
  2. 종료 조건 확인:
    • 종료 조건을 설정하고 반복을 제어하세요.

while문 활용 예제: 숫자 합계 구하기

python
코드 복사
total = 0 num = 1 while num <= 10: # 1부터 10까지 합산 total += num num += 1 print(f"1부터 10까지의 합: {total}")

출력:

코드 복사
1부터 10까지의 합: 55

while문은 조건에 따라 반복이 필요할 때 매우 유용합니다! 😄

 

 

# while 조건식 :
# 조건식이 참이면 실행되는 코드
x = 10

while x > 0 :
  print(f'1:{x}')
  print(f'2:{x}')
  print(f'3:{x}')
  x -= 1

 

x = 1

while x <= 10 :
  print(f'{x}')
  print(f'자기가 원하는 문장')
  x += 1

1 자기가 원하는 문장 2 자기가 원하는 문장 3 자기가 원하는 문장 4 자기가 원하는 문장 5 자기가 원하는 문장 6 자기가 원하는 문장 7 자기가 원하는 문장 8 자기가 원하는 문장 9 자기가 원하는 문장 10 자기가 원하는 문장

 

x = 1 # 초깃값
y = True
while y : # 종료조건
  print(f'{x}')  
  x += 2 # 변경
  if x > 9 :
    y = False

1

3

5

7

9

 

money = 5000

while money >= 3000 :
  print("아이스크림을 사먹었습니다.", end = "  ")
  money -= 1000

 

아이스크림을 사먹었습니다.

아이스크림을 사먹었습니다.

아이스크림을 사먹었습니다.

 

 
money = 5000
i = 0
while money >= 3000 :
  i += 1
  print(f"아이스크림을 {i}번 사먹었습니다.", end = "  ")
  money -= 1000
  print(f'현재 금액은 {money} 원 남아있습니다.')

 

아이스크림을 1번 사먹었습니다. 현재 금액은 4000 원 남아있습니다.

아이스크림을 2번 사먹었습니다. 현재 금액은 3000 원 남아있습니다.

아이스크림을 3번 사먹었습니다. 현재 금액은 2000 원 남아있습니다.

 

money = 0
while True :
  money += int(input())
  print(money)  
100
100
500
600
1000
1600
 

 


파이썬 break, continue문 설명

ChatGPT

파이썬의 break와 continue문은 반복문(for, while)에서 실행 흐름을 제어하기 위한 키워드입니다.


1. break 문

  • 기능: 반복문을 즉시 종료합니다.
  • break가 실행되면 반복문의 조건에 상관없이 반복문이 종료됩니다.

예제 1: while문에서 break 사용

python
코드 복사
i = 0 while i < 10: print(i) if i == 5: # i가 5일 때 반복문 종료 break i += 1

출력:

코드 복사
0 1 2 3 4 5

예제 2: for문에서 break 사용

python
코드 복사
for i in range(10): if i == 3: # i가 3일 때 반복문 종료 break print(i)

출력:

코드 복사
0 1 2

2. continue 문

  • 기능: 반복문의 현재 반복을 건너뛰고, 다음 반복을 실행합니다.
  • 반복문은 종료되지 않고, 다음 반복으로 넘어갑니다.

예제 1: while문에서 continue 사용

python
코드 복사
i = 0 while i < 10: i += 1 if i % 2 == 0: # 짝수일 때 현재 반복 건너뛰기 continue print(i) # 홀수만 출력

출력:

코드 복사
1 3 5 7 9

예제 2: for문에서 continue 사용

python
코드 복사
for i in range(10): if i == 5: # i가 5일 때 현재 반복 건너뛰기 continue print(i)

출력:

코드 복사
0 1 2 3 4 6 7 8 9

break와 continue 비교

구분breakcontinue
기능 반복문을 완전히 종료 현재 반복만 건너뛰고 다음 반복 실행
영향 반복문을 끝냄 반복문은 계속 실행됨
사용 상황 반복을 중단해야 하는 경우 (조건 충족 시 종료) 특정 조건에서만 실행을 건너뛰는 경우

예제: break와 continue 함께 사용

python
코드 복사
for i in range(1, 11): if i == 7: # i가 7이면 반복 종료 break if i % 2 == 0: # 짝수는 건너뛰기 continue print(i) # 홀수만 출력

출력:

코드 복사
1 3 5

주의점

  • break 사용 시:
    • 반복문이 즉시 종료되므로, 이후 코드가 실행되지 않습니다.
  • continue 사용 시:
    • 반복문의 남은 코드는 실행되지 않고, 바로 다음 반복으로 넘어갑니다.

이 두 키워드는 반복문 내에서 조건에 따라 반복을 정밀하게 제어할 수 있어 매우 유용합니다! 😄

 

# break : 루프(loop)를 부수겠구나
# continue : 루프를 이어가겠구나

count = 0
while True :
  if count > 10 :
    break
  print(count)
  count += 1

print(f'last : {count}')
0
1
2
3
4
5
6
7
8
9
10
last : 11

 

# continue : 루프를 이어가겠구나

count = 0
while True :
  if count > 10 :
    break
  count += 1
  if count % 2 ==0 :
    continue 
  print(count)  

print(f'last : {count}')

 

# continue : 루프를 이어가겠구나


count = 0
while True :
  if count > 9 :
    break
  count += 1
  if count % 2 == 0 :
    continue # 이 밑에 있는 while문의 실행문을 전부 skip하고 다음 루프로 이어감
  print(count)  

print(f'last : {count}')

num = 0

while num < 20 :
  num = num + 1
  if num % 3 != 0 :
    continue
  print(num, end = " ")

3 6 9 12 15 18

 

day = 1
while day <= 5 :
  hour = 1
  while hour <= 3 :
    print(f'{day}일차 {hour}교시입니다.')
    hour += 1
  day += 1

dan = 2
while dan <= 9 :
  n = 1
  while n <= 9 :
    print(f'{dan}x{n}={dan*n}')
    n += 1
  dan += 1
2x1=2
2x2=4
2x3=6
2x4=8
2x5=10
2x6=12
2x7=14
2x8=16
2x9=18
3x1=3
3x2=6
3x3=9
3x4=12
3x5=15
3x6=18
3x7=21
3x8=24
3x9=27
4x1=4
4x2=8
4x3=12
4x4=16
4x5=20
4x6=24
4x7=28
4x8=32
4x9=36
5x1=5
5x2=10
5x3=15
5x4=20
5x5=25
5x6=30
5x7=35
5x8=40
5x9=45
6x1=6
6x2=12
6x3=18
6x4=24
6x5=30
6x6=36
6x7=42
6x8=48
6x9=54
7x1=7
7x2=14
7x3=21
7x4=28
7x5=35
7x6=42
7x7=49
7x8=56
7x9=63
8x1=8
8x2=16
8x3=24
8x4=32
8x5=40
8x6=48
8x7=56
8x8=64
8x9=72
9x1=9
9x2=18
9x3=27
9x4=36
9x5=45
9x6=54
9x7=63
9x8=72
9x9=81

 

파이썬 이중 반복문 설명

ChatGPT

파이썬 이중 반복문

이중 반복문은 반복문 안에 또 다른 반복문을 포함하는 구조입니다. 이를 통해 2차원 데이터 처리, 중첩된 작업, 또는 조합 생성과 같은 복잡한 작업을 간단하게 처리할 수 있습니다.


기본 구조

python
코드 복사
for 변수1 in 반복가능한객체1: for 변수2 in 반복가능한객체2: 실행할 코드
  • 외부 반복문: 첫 번째 for 또는 while 반복문.
  • 내부 반복문: 외부 반복문이 한 번 실행될 때마다 내부 반복문이 전체 반복됩니다.

예제 1: 단순 이중 반복문

python
코드 복사
for i in range(3): # 외부 반복문 for j in range(2): # 내부 반복문 print(f"i={i}, j={j}")

출력:

css
코드 복사
i=0, j=0 i=0, j=1 i=1, j=0 i=1, j=1 i=2, j=0 i=2, j=1

설명:

  • i가 0일 때, j는 0부터 1까지 반복.
  • i가 1일 때, 다시 j는 0부터 1까지 반복.
  • i가 2일 때도 동일.

예제 2: 이중 반복문으로 구구단 출력

python
코드 복사
for i in range(2, 10): # 2단부터 9단까지 for j in range(1, 10): # 각 단의 곱셈 print(f"{i} x {j} = {i * j}", end="\t") print() # 각 단 끝에 줄바꿈

출력:

python
코드 복사
2 x 1 = 2 2 x 2 = 4 ... 2 x 9 = 18 3 x 1 = 3 3 x 2 = 6 ... 3 x 9 = 27 ... 9 x 1 = 9 9 x 2 = 18 ... 9 x 9 = 81

예제 3: 이중 반복문으로 2차원 리스트 처리

2차원 리스트(리스트 안에 리스트)에서 각 요소를 출력하거나 조작할 때 유용합니다.

python
코드 복사
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] for row in matrix: # 행(row) 반복 for element in row: # 열(column) 반복 print(element, end=" ") print() # 각 행이 끝난 후 줄바꿈

출력:

코드 복사
1 2 3 4 5 6 7 8 9

예제 4: 이중 반복문으로 조합 생성

두 리스트의 모든 조합을 생성할 때 사용합니다.

python
코드 복사
colors = ["red", "green", "blue"] shapes = ["circle", "square"] for color in colors: for shape in shapes: print(f"{color} {shape}")

출력:

scss
코드 복사
red circle red square green circle green square blue circle blue square

예제 5: break와 continue 사용

이중 반복문에서도 특정 조건에 따라 반복을 제어할 수 있습니다.

break 사용

python
코드 복사
for i in range(3): for j in range(3): if j == 2: break # 내부 반복문 종료 print(f"i={i}, j={j}")

출력:

css
코드 복사
i=0, j=0 i=0, j=1 i=1, j=0 i=1, j=1 i=2, j=0 i=2, j=1

continue 사용

python
코드 복사
for i in range(3): for j in range(3): if j == 1: continue # 다음 반복으로 넘어감 print(f"i={i}, j={j}")

출력:

css
코드 복사
i=0, j=0 i=0, j=2 i=1, j=0 i=1, j=2 i=2, j=0 i=2, j=2

활용 사례

  1. 2차원 데이터 탐색:
    • 테이블, 행렬(matrix) 또는 데이터프레임과 같은 2차원 구조에서 각 요소를 순회.
  2. 조합 생성:
    • 두 개 이상의 리스트나 데이터 집합에서 가능한 모든 조합 생성.
  3. 구조 출력:
    • 패턴 출력, 별 그리기 등.

이중 반복문은 데이터 처리와 구조적인 작업에서 매우 유용하므로 자주 사용되는 문법입니다. 😊

 

 

 

구구단 실습

 

i = 2  # 구구단
while i <= 9:
    j = 1  # 각 단의 시작 곱
    while j <= 8:
        if j == 8:  
            j += 1
            continue
        print(f'{i}x{j}={i*j}', end='\t')
        j += 1
    print()  # 각 단 끝난 후 줄바꿈
    i += 1
    if i == 10:
        break

3, 6, 9 게임을 1부터 20까지 진행하는 코드를 작성하면 다음과 같습니다. 이 게임에서는 숫자에 3, 6, 9가 포함되면 "짝"을 출력합니다.

파이썬 코드

python
코드 복사
number = 1 while number <= 20: # 숫자를 문자열로 변환하여 '3', '6', '9' 포함 여부 확인 if '3' in str(number) or '6' in str(number) or '9' in str(number): print("짝", end=' ') else: print(number, end=' ') number += 1

실행 결과

코드 복사
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20

코드 설명

  1. while number <= 20:
    • 1부터 20까지 반복합니다.
  2. '3', '6', '9' 포함 여부 확인:
    • 숫자를 문자열로 변환하고 '3', '6', '9'이 포함되어 있는지 확인합니다.
    • 포함되어 있으면 "짝"을 출력합니다.
  3. 숫자 출력:
    • 조건에 해당하지 않으면 숫자를 그대로 출력합니다.
  4. 결과 출력 간격 (end=' '):
    • 출력이 한 줄로 이어지도록 설정합니다.

이 코드는 간단하면서도 3, 6, 9 게임 규칙을 충실히 구현한 방식입니다. 😊


while문과 continue, break를 사용하여 3, 6, 9 게임을 1부터 20까지 진행하는 코드를 작성하면 다음과 같습니다:

파이썬 코드

python
number = 1 # 시작 숫자 while number <= 20: # 1부터 20까지 반복 if '3' in str(number) or '6' in str(number) or '9' in str(number): print("짝", end=' ') number += 1 continue # "짝"을 출력한 후 다음 숫자로 넘어감 print(number, end=' ') number += 1

실행 결과

코드 복사
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20

코드 설명

  1. while number <= 20:
    • number가 1부터 20까지 반복됩니다.
  2. if '3' in str(number) or '6' in str(number) or '9' in str(number):
    • 숫자를 문자열로 변환하여 3, 6, 9가 포함되어 있는지 확인합니다.
    • 포함되면 "짝"을 출력합니다.
  3. continue:
    • "짝"을 출력한 후 continue를 사용해 아래 코드(print(number))를 건너뛰고 바로 다음 숫자로 넘어갑니다.
  4. 숫자 출력:
    • 조건에 해당하지 않는 숫자는 그대로 출력합니다.
  5. end=' ':
    • 출력 결과를 한 줄로 이어서 표시합니다.

이 코드는 1부터 20까지의 3, 6, 9 게임을 완벽히 구현합니다. 😊

 
number = 1  # 시작 숫자

while number <= 20:
    if '3' in str(number) or '6' in str(number) or '9' in str(number):
        print("짝", end=' ')
        number += 1
        continue  
    print(number, end=' ')
    number += 1

1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20

 

다양한 방법

#nunber % 3 == 0 <= 일의 자리까지는 거를 수 있음
#number % 10 <- 일의 자리를 구한다
#number % 10 % 3 == 0

number = 1
while number <= 20 :
  if number % 10 % 3 == 0 and number % 10 != 0:
    print("짝", end=" ")
    number += 1
    continue
  print(number, end=" ")
  number += 1

1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20

number = 1

while number <= 20:
    # 1의 자리와 10의 자리 분리
    tens = number // 10  # 10의 자리
    ones = number % 10   # 1의 자리
   
    # 3, 6, 9가 포함되었는지 확인
    if (tens != 0 and tens % 3 == 0) or (ones != 0 and ones % 3 == 0):
        print("짝", end=" ")
    else:
        print(number, end=" ")
   
    number += 1  

1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20

 

i = 1
while i <= 20 :
  if i%10%3 ==0 and i%10 != 0 :
    print("짝", end =" ")
  else :
    print(i, end=" ")
  i += 1

1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20

 

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

LIST