Turtle 모듈은 파이썬에 내장된 모듈로 간단한 그래픽(선, 점, 곡선 등)을 그릴 수 있는 그래픽 프로그램이다.
import turtle: turtle 모듈을 불러옴import turtle as t 방식으로 변형하여 사용setup(width=크기, height=크기): turtle 그래픽 영역 크기 설정shape(모양): 커서 모양을 변경: turtle, circle, arrow, classiccolor(색): 커서의 색을 변경bgcolor(색): 배경색을 변경pensize(두께): 선의 두께를 변경: 숫자goto(x좌표, y좌표): 커서(거북이)의 위치 지정penup(): 펜을 들어 올림, 들어올린 상태에서는 그림이 안 그려진다.pendown(): 펜을 내림, 이동하면 그림이 그려진다.forward(이동칸수): 거북이 머리 방향으로 이동칸 수 만큼 이동backward(이동칸수): 거북이 꼬리 방향으로 이동칸 수 만큼 이동right(각도): 거북이가 각도 만큼 오른쪽으로 전환left(각도): 거북이가 각도 만큼 왼쪽으로 전환home(): 거북이가 0,0으로 이동circle(반지름): 반지름의 원을 그린다undo(): 이전에 했던 행동 취소speed(속도): 거북이의 속도 조절

tkinter는 파이썬에서 그래픽 사용자 인터페이스(GUI: graphical user interface)를 개발할 때 필요한 모듈
tkinter는 예전부터 유닉스 계열에서 사용되던 Tcl/Tk 위에 객체 지향 계층을 입힌 것이다. Tk는 John Ousterhout에 의하여 Tcl 스크립팅 언어를 위한 GUI 확장으로 개발
ButtonCanvasCheckbuttonEntryFrameLabelListboxMenuMenubuttonMessageRadiobuttonScaleScrollbarTextToplevelLabelFramePanedWindowSpinboximport tkinterfrom 사용tkinter 없이 Tk() 호출 후 반환값을 저장
: Tk()로 생성되는 컨테이너 값을 저장
mainloop(): 이벤트를 기다리는 무한 루프 함수(Root Window, Base Window)
title(문자열): 컨테이너의 이름 결정
geometry(문자열): 컨테이너의 초기 크기 결정
Geometry("400x100")Resizable(): 컨테이너 크기 조절 가능 여부 설정
Label(컨테이너, text=표시할 문자열)Button(컨테이너, text=표시할 문자열, 이벤트 처리)pack(): 배치 관리자중 하나로 차곡차곡 쌓는 방식의 배치
import turtle
turtle.shape("turtle")
turtle.color("red")
turtle.forward(100)
##########################################################
import turtle as t # turtle을 t라고 부른다.
t.shape("turtle")
t.color("red")
t.pensize(3)
t.forward(100)
t.left(90)
t.forward(100)
t.right(45)
t.forward(50)
t.goto(200,-200)
t.color("blue")
t.home()
t.circle(100)
######################################################
import turtle
t=turtle.Turtle()
t.shape("turtle")
t.forward(100)
#################################################
## 예제 1
import turtle as t
t.shape("turtle")
t.forward(100)
t.right(66)
t.forward(100)
t.penup()
t.forward(100)
t.pendown()
t.left(150)
t.forward(200)
## 예제 2
import turtle
t=turtle.Turtle()
colors = ["red", "purple", "blue", "green", "yellow", "orange" ]
t.shape("turtle")
t.speed(0)
t.pensize(3)
length = 10
while length < 500:
t.forward(length)
t.pencolor(colors[length%6])
t.right (89)
length += 5
###########################################################
# 1
import tkinter as t
#########################################################
# 2
from tkinter import *
# from random import * -> random.randint로 안쓰고 randint만 써도 괜찮아 진다.
win = Tk()
win.title("연습용 GUI 프로그램")
win.geometry("400x100")
win.resizable(width=False, height=False) # 창의 크기 변경 불가
win.mainloop()
#########################################################
from tkinter import *
def abcd():
print("버튼1 클릭")
def efgh():
print("버튼2 클릭")
win = Tk()
win.title("연습용 GUI 프로그램")
win.geometry("400x100")
l1 = Label(win,text="Hello World")
l1.pack()
b1 = Button(win,text="First Button",command=abcd)
b1.pack()
b2 = Button(win,text="Second Button",command=efgh) # shell 에서 print가 됨
b2.pack()
l2 = Label(win,text="안녕하세요")
l2.pack()
win.mainloop()
#########################################################
from tkinter import *
def abcd():
print("버튼1 클릭")
l1.configure(text="버튼1 클릭")
b1.configure(text="첫번째 버튼")
b2.configure(text="두번째 버튼")
def efgh():
print("버튼2 클릭")
l1.configure(text="버튼2 클릭")
b1.configure(text="First Button")
b2.configure(text="Second Button",fg="red",bg="black")
win = Tk()
win.title("연습용 GUI 프로그램")
win.geometry("400x100")
l1 = Label(win,text="Hello World",font=("굴림체",20,"bold"))
l1.pack()
b1 = Button(win,text="First Button",command=abcd)
b1.pack()
b2 = Button(win,text="Second Button",command=efgh) # shell 에서 print가 됨
b2.pack()
l2 = Label(win,text="안녕하세요")
l2.pack()
win.mainloop()
from tkinter import *
def i():
n = 1
for x in range(1,21):
n *= x
l1.configure(text=f"1~20까지의 곱 = {n}")
win = Tk()
win.geometry("400x100")
l1 = Label(win,text="1~20까지의 곱")
l1.pack()
b1 = Button(win,text="시작",command=i)
b1.pack()
win.mainloop()
from tkinter import *
def increase():
global num
num += 1
l1.configure(text=f"1~{num}까지의 곱")
def decrease():
global num
if num > 2:
num -= 1
else:
print("오류")
l1.configure(text=f"1~{num}까지의 곱")
def start():
n = 1
for x in range(1,num+1):
n *= x
l1.configure(text=f"1~{num}까지의 곱 = {n}")
num = 2
win = Tk()
win.geometry("400x100")
l1 = Label(win,text="1~2까지의 곱")
l1.pack()
b1 = Button(win,text="증가",command=increase)
b1.pack(side="left")
b2 = Button(win,text="감소",command=decrease)
b2.pack(side=LEFT)
b3 = Button(win,text="시작",command=start)
b3.pack(side=LEFT)
win.mainloop()
from tkinter import *
def increase():
global n
n += 1
l1.configure(text=f"{n}")
def decrease():
global n
n -= 1
l1.configure(text=f"{n}")
n = 0
win = Tk()
win.geometry("400x100")
l1 = Label(win, text="0")
l1.pack()
b1 = Button(win, text="증가",command=increase)
b1.pack(side="left")
b2 = Button(win, text="감소",command=decrease)
b2.pack(side=LEFT)
win.mainloop()