[Python] 6-2장 반복문 응용(팩토리얼 계산, 사인 함수, 별 그리기, up & down 등)

- 6개의 원 그리기 (터틀 그래픽)

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

for i in range(6):
    t.circle(100)
    t.left(60)

 

 

- n각형 그리기 (터틀 그래픽)

n = int(turtle.textinput("", "몇 각형을 원하시나요? "))
leng = int(turtle.textinput("", "한 변의 길이는 얼마인가요? "))
for i in range(n):
    t.forward(leng)
    t.left(360/n)
t.clear()

 

 

- 팩토리얼 계산

n = int(input("정수를 입력하시오: "))
fac = 1
for i in range(1, n+1):
    fac *= i
print(str(n)+"!은 "+str(fac)+"이다.")

 

 

- 로그인 비밀번호 찾기

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

 

 

- 구구단 출력

dan = int(input("원하는 단은: "))
for i in range(1, 10):
    print(dan,"*",i,"=",dan * i)

 

 

- 별 그리기 (터틀 그래픽)

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

for i in range(5):
    t.forward(50)
    t.right(144)

 

 

- 스파이럴 그리기 (터틀 그래픽)

colors = ["red", "purple", "blue", "green", "yellow", "orange"]
turtle.bgcolor("black")
t.speed(0)
t.width(3)

length = 10
while length < 900:
    t.forward(length)
    t.pencolor(colors[length%6])
    t.right(89)
    length += 5

 

 

- 숫자 맞추기 게임 (up & down)

import random

count = 0
ans = random.randint(1, 100)
guess = 0
print("1부터 100 사이의 숫자를 맞추시오")
while guess != ans:
    count += 1
    guess = int(input("숫자를 입력하시오: "))
    if guess < ans:
        print("낮음!")
    elif guess > ans:
        print("높음!")
print("축하합니다. 시도횟수 =",count, "정답은 =",ans)

 

 

- 모든 샌드위치 종류 출력

breads = ["호밀빵", "위트", "화이트"]
meats = ["미트볼", "소시지", "닭가슴살"]
vegis = ["양상추", "토마토", "오이"]
sauces = ["마요네즈", "허니 머스타드", "칠리"]

for b in breads:
    for m in meats:
        for v in vegis:
            for s in sauces:
                print(b+"+"+m+"+"+v+"+"+s)

 

 

- 랜덤 산술 문제 출력

import random
x = random.randint(1, 9)
y = random.randint(1, 9)
while True:
    ans = int(input(str(x)+"*"+str(y)+"는"))
    if ans == x*y:
        print("맞았습니다.")
        break

 

 

- 눈 결정 그리기 (터틀 그래픽)

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

angle = 0
for i in range(6):
    t.left(angle+90)
    t.forward(100)
    t.forward(-30)
    t.left(60)
    t.forward(30)
    t.forward(-30)
    t.right(120)
    t.forward(30)
    angle += 60
    t.penup()
    t.home()
    t.pendown()

 

 

- 거북이 왕복 달리기 (터틀 그래픽)

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

for i in range(5):
    t.forward(200)
    t.right(90)
    t.forward(20)
    t.right(90)
    t.forward(200)
    t.left(90)
    t.forward(20)
    t.left(90)
t.home()
t.clear()

 

 

- 사인 함수 그리기 (터틀 그래픽) - sin() 함수 사용

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

for degree in range(360):
    radian = math.sin(3.14 * degree / 180.0)
    t.goto(degree, radian * 100)

 

 

※ 두근두근 파이썬 6장 연습문제 참조