[프로그래밍 언어]/python

두근두근 파이썬(개정판)_ch6 반복문

우당탕탕 개발 일지 2024. 1. 25. 14:51

안녕하세요. 우당탕탕 개발 일지입니다.

파이썬 에디터 IDLE 3.12.1을 사용합니다.

책과 수업 내용을 바탕으로 요약한 내용과 교재 뒤 연습문제입니다.

 

※ 오늘 다루는 내용은 뒷부분을 학습하기 전 많이 연습해 두는 게 좋습니다. 

연습문제를 많이 푼 상태에서 다음장으로 넘어가 주시길 바랍니다.

 

  • range() 함수 
  • 횟수 제어 반복(for-in)
  • 조건제어 반복 (while)

 

Q  반복문이  왜 필요할까?

A)  반복문은 어떤 작업을 반복하게 하는 구조이다. 
반복을 통해 똑같은 문장을 여러 번 복사하는 수고를 줄일 수 있고 
따라서 프로그래밍에 필요한 시간도 단축할 수 있다. 

1. range() 함수 

range() 함수는 for문과 뗄 수 없는 함수이다. 

영어 뜻 그대로 '범위'를 지정하는 역할을 한다.

 

두근두근 파이썬 (개정판)

 

range(10)인 경우는 시작값인지 종료값인지 증가되는 값인지 헷갈릴 수 있다. 

한 가지 값인 10만 표시된 경우는 시작값은 기본값이 0이고 종료값은 10이고 한 번에 증가되는 값은 기본값이 1이다.

따라서 0부터 9까지의 범위를 나타 내는 것이다. 

 

range(1,11)인 경우는 1부터 10까지의 범위를 나타내는 것이다.

 


파이썬에서 반복문의 종류는 크게 2가지가 있다.

  • 정해진 횟수를 반복하는 횟수 제어 반복(for 문)
  • 특정한 조건을 만족하면 계속 반복하는 조건 제어 반복 (While 문)

반복문도 조건문과 마찬가지로 들여 쓰기가 중요함으로 Tab키를 이용하여 들여 쓰기 후 조건문장을 적는 것이 좋다. 

 

 

2. 횟수 반복 제어 (for-in)

for-in 형태의 반복문은 일단 내가 몇 번 반복하고 싶은지가 정해져 있을 때 사용한다고 생각하자!

두근두근 파이썬 (개정판)

 

for-in사이의 변수는 반복되는 값을 차례차례  저장하는 매게 변수 같은 역할을 한다.

연산을 도와주는 친구라고 가볍게 생각하고 예제를 통해 이해하기로 하자!

 

 

예제) 구구단 출력

>>>x=int(input("원하는 단을 입력하시오"))

>>>for i in range(10):
>>>   print(f"{x}*{i}={x*i}")

 

 

예제) 팩토리얼

>>>n=int(input("정수를 입력하시오:"))
>>>fact=1   #초기화

>>>for i in range(n+1): 
>>>    fact*=i
>>>    print(f"{n}!은{fact}이다.")

 

 

예제)  n-각형 그리기

>>>import turtle
>>>t=turtle.Turtle()

>>>n=int(input("몇각형 도형을 그릴지 입력하시오"))
>>>for i in range(n):
>>>		t.forward(100)
>>>		t.left(360/n)

 

 

 


3. 조건제어 반복 (while)

조건 제어 반복은 조건이 만족되는 동안만 반복하고 조건이 만족하지 않으면 반복이 끝나기 때문에 붙여진 이름이다.

주로 반복하는 횟수를  프로그래머가 모를 때 사용한다. while문은 for-in문과 다르게 조건에 변수가 없다. 

두근두근 파이썬(개정판)

조건 제어 반복에서는 가끔 무한루프(infinite loop)가 발생할 수 있다. 
말 그대로 반복이 무한하게 발생해서 프로그램을 빠져나올 수 없는 상태가 발생하는 것이다.
이것을 해결하기 위해서 break 를 사용한다.

프로그램이 종료될 조건 if문으로 적어주고  안에 문장에 break를  적어주면
if문의 조건이 참일 때 프로그램이 종료된다.

 

 

예제) 별 그리기 

>>>import turtle
>>>t=turtle.Turtle()
>>>t.shape("turtle")

>>>i=0
>>>while i<5:
>>>    t.forward(200)
>>>    t.right(144)
>>>    i+=1

 

 

예제) 로그인 프로그램 

'!= ' 은 '같지 않다'는 의미이다.

>>>password=" "
>>>while password!="kgygemini":             
>>>		password=input("암호를 입력하시오:")
>>>print("로그인 성공")

 

 

 

 

 

 

 


연습문제 ch6-13

반복문을 활용하여 무지개를 그려봅시다.

import turtle
t=turtle.Turtle()

color=["red","orange","yellow","green","blue","indigo","violet"]

t.pensize(20)
t.pencolor(color[0])
t.up();t.goto(0,0);t.down()
t.left(90);t.circle(50,180)

n=0
for i in range(1,7,1):
    t.pencolor(color[i])
    n+=30
    t.up();t.goto(n,0);t.down()
    t.left(180);t.circle(50+n,180)

연습문제 ch6-13 결과값

 

 

 

 

연습문제 ch6-14

로봇청소기가 방을 청소할 때 다음과 같은 모양을 흉내 내 보시오.

연습문제 ch6-14 결과값

import turtle
t=turtle.Turtle()

t.pensize(10)
t.pencolor("red")

for i in range(5):
    t.fd(200);t.rt(90)
    t.fd(20);t.rt(90)
    t.fd(200);t.lt(90)
    t.fd(20);t.lt(90)

 

728x90