You are on page 1of 5

반복문

지난 시간 복습

✔ range(시작값, 종룟값, 증감값) 함수

>>> list(range(5))

[0, 1, 2, 3, 4]

>>> list(range(1, 11))

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> list(range(1, 20, 3))

[1, 4, 7, 10, 13, 16, 19]

✔ 논리 연산자(and, or, not)


- 논리곱(A and B): 둘(A, B) 모두 참(True)인 경우에만 참(True)이고 둘(A, B) 중 하나라도
거짓(False)이면 거짓(False)이다.
- 논리합(A or B): 둘(A, B) 중 하나라도 참(True)이면 참(True)이고 둘(A, B) 모두 거짓(False)인
경우에만 거짓(False)이다.
- 논리부정(not A): A가 참(True)이면 거짓(False)가 되고 거짓(False)이면 참(True)이 된다.

>>> a = (5 > 2) and (3 == 3)

>>> a

True

>>> b = (4 > 2) or (3 != 3)

>>> b

True

>>> not a

False

>>> not b

False
반복문

정의: 일정한 구간의 명령을 반복해서 실행하는 구문


장점: 특정 함수나 명령문을 반복해서 실행해야 할 때, 반복문을 이용하면 효율적으로 프로그램을 작성할
수 있다.

✔ 반복문의 여러가지 표현

유형 while문 for문 + list for문 + range()

단순 반복문 while 조건식: for 변수명 in 리스트: for 변수명 in range():


명령문 명령문 명령문

중첩 반복문 while 조건식1: for 변수명 in 리스트: for 변수명 in range():


while 조건식2: for 변수명 in 리스트: for 변수명 in range():
명령문 명령문 명령문

무한 반복문 while True:


명령문

while 문
- while 문은 [조건식]이 (참(True))인 동안 내부에 있는 명령문을 수행하고, [조건식]이
(거짓(False))인 경우 while문을 빠져나온다.
- while문의 조건식 끝에는 꼭 ( 쌍점(:) )을 붙여 주어야 한다.
- while 문에 [명령문]을 포함시키려면 spacebar ( 4 )번을 통해 들여쓰기로 구분해야 합니다.
for문 + list: 리스트의 원소
- list는 자료(data)를 하나로 묶어서 표현한 것을 말합니다. 각각의 자료는 원소라고 부릅니다. ex)
[1, 2, 3, 4, 5]
- for문 + list는 list의 원소가 차례대로 (변수명)에 넣어 명령어를 실행하고 원소가 더이상 없으면
종료됩니다.
for문 + range()
- range() 함수는 규칙에 따라 원소를 생성합니다.
- for문 + range()는 range() 함수가 생성한 원소를 차례대로 (변수명)에 넣어 명령어를 실행하고
원소가 더이상 없으면 종료됩니다.

증감식

a=a+1 a+=1

b=b-2 b-=2
반복문 활용

반복문만 사용하는 경우

i=0 for i in range(4): for i in [10, 10, 10, 10, 10]: for i in range(6):
t.forward(i)
while i < 3: t.forward(100) t.forward(100)
t.left(72)
t.forward(100) t.left(90) t.left(60)
t.left(120)
i=i+1

함수를 함께 사용하는 경우

def n_poly(n):
for i in range(n):
t.forward(100)
t.left(360 / n)
✔ 반복문의 제어
- break: 특정 조건일 때 반복문에서 벗어나야 하는 경우에 사용한다.
- continue: 특정 조건만 건너뛰고 계속 반복문을 실행하고 싶을 때 사용한다.

break문 continue문

while 1: for n in range(10):


n = input(“[q]를 입력시 종료: “) if n % 2 == 0:
if n == ‘q’: continue
print(“[프로그램 종료]”) print(n)
break

퀴즈 프로그램(p155)

a = True a = True
print(“프로그램을 작성할 때 일정한 구간의”) print(“프로그램을 작성할 때 일정한 구간의”)
print(“명령을 반복해서 실행하도록 구성한”) print(“명령을 반복해서 실행하도록 구성한”)
print(“구문을 무엇이라 하는가?”) print(“구문을 무엇이라 하는가?”)
while a: while a:
n = input(“정답: ”) n = input(“정답: ”)
if n == “반복문” : if n == “반복문” :
print(“[정답]”) print(“[정답]”)
a = False break
else: else:
print(“[오답]”) print(“[오답]”)
print(1) #실행됨 print(1) #실행안됨

예제: 유령 피하기 프로그램(p155)


유령의 집에 3개의 방이 있다. 이 3개의 방 중 하나의 방에서는 유령이 나오는데, 유령은 방문을 열 때마다 무작위로 3개의 방
중 하나의 방으로 이동한다. 3개의 방 중 하나의 방을 선택했을 때, 유령이 없으면 점수가 1점 오르면서 다른 방으로
이동하고, 유령을 만나면 점수를 출력하고 반복을 벗어나는 프로그램을 작성해 보자.

import random
score = 0
success = True
while success:
room = random.randin(1,3)
n = int(input(“방 번호를 입력하세요.: “)
if n == room:
print(“유령이다!!!”)
success = False
elif n > 3:
print(n, “번 방은 없습니다.”)
else:
print(“유령이 없다.”)
score+=1
print(“게임 종료”)
print(“점수: “, score, “점”)
연습문제

추상화 그리기 프로그램 - 반복문으로 처리할 수 있는 부분을 찾아서 다시 작성해 보자.

변경전 변경후

import turtle, random import turtle, random


t = turtle.Turtle() t = turtle.Turtle()
turtle.setup(400, 400, 0, 0) turtle.setup(400, 400, 0, 0)

count = 1 count = 1
def rect(dis): def rect(dis):
t.forward(dis) for i in range(4):
t.right(90) t.forward(dis)
t.forward(dis) t.right(90)
t.right(90)
t.forward(dis) def f():
t.right(90) global count
t.forward(dis) r = random.random()
t.right(90) g = random.random()
b = random.random()
def f(): size=random.randint(1, 10)
global count dis = random.randint(1, 100)
r = random.random() xpos=random.randint(-200, 200)
g = random.random() ypos=random.randint(-200, 200)
b = random.random()
size=random.randint(1, 10) t.penup()
dis = random.randint(1, 100) t.goto(xpos, ypos)
xpos=random.randint(-200, 200) t.pendown()
ypos=random.randint(-200, 200) t.pensize(size)
t.color(r, g, b)
t.penup()
t.goto(xpos, ypos) if count%2 == 0:
t.pendown() rect(dis)
t.pensize(size) count+=1
t.color(r, g, b) else:
t.begin_fill()
if count%2 == 0: rect(dis)
rect(dis) t.end_fill()
count+=1 count+=1
else:
t.begin_fill() for i in range(40):
rect(dis) f()
t.end_fill()
count+=1

f(), f(), f(), f(), f(), f(), f(), f(), f(), f()
f(), f(), f(), f(), f(), f(), f(), f(), f(), f()
f(), f(), f(), f(), f(), f(), f(), f(), f(), f()
f(), f(), f(), f(), f(), f(), f(), f(), f(), f()

You might also like