안녕하세요. 우당탕탕 개발 일지입니다.
파이썬 에디터 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-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)
'[프로그래밍 언어] > python' 카테고리의 다른 글
두근두근 파이썬(개정판)_ch7 함수 연습문제 1~10번 (1) | 2024.01.25 |
---|---|
두근두근 파이썬(개정판)_ch7 함수,def, 인수, 매개변수, 지역변수, 키워드 인수, 디폴트 인수 (1) | 2024.01.25 |
두근두근 파이썬(개정판)_ch5 조건문 (2) | 2024.01.21 |
두근두근 파이썬(개정판)_ch4 자료의 종류 (2) | 2024.01.20 |
두근두근 파이썬(개정판)_ch3 수식, 연산자 (2) | 2024.01.08 |