python程序员的浪漫-千行生日祝福代码
📆Date:2022年12月16日修改
🎬Author:小 y 同 学
📃Classify:花里胡哨区
🔖Language: Python
🍀 花哨简介
使用python的turtle库进行绘图,先是绘制“一只大熊”送上祝福,随后绘制三层蛋糕送上浪漫!近千行的生日祝福代码还不赶快去试试!
小提示:python3的turtle库好像是自带的,不需要安装哦~
🌿 完整代码
# _*_coding:utf-8_*_# created by cy on 2022/12/16import turtle as t import time import math as m import random as r # 设置画布 t.setup(1.0,1.0)# todo 此处可以设置窗体的大小比例 t.bgcolor('white')# 设置背景色 t.title('生日快乐!')# 设置窗口的标题# todo 此处可以设置绘图速度 t.speed(2)# 速度 t.delay(2)# 延迟# t.tracer(False) # 一次性出图,便于调试程序使用 t.shape('turtle')# 设置画笔形状# 称呼 t.penup() t.goto(-500,250) msg ='昵称'# todo 此处可以修改昵称for i in msg: t.color('green') t.write(i,True, align='left', font=('方正舒体',70,'normal')) time.sleep(0.3)# 大熊# 左耳 t.color('black') t.penup() t.goto(-150,200) t.setheading(160) t.begin_fill() t.pendown() t.circle(-30,230) t.setheading(180) t.circle(37,90) t.end_fill()# 右耳 t.penup() t.goto(60,200) t.setheading(20) t.begin_fill() t.pendown() t.circle(30,230) t.setheading(0) t.circle(-37,90) t.end_fill()# 头 t.pensize(5) t.penup() t.goto(-113,237) t.setheading(30) t.pendown() t.circle(-134,60) t.penup() t.goto(-150,200) t.setheading(-120) t.pendown() t.circle(200,80) t.penup() t.goto(60,200) t.setheading(-60) t.pendown() t.circle(-200,80) t.penup() t.setheading(210) t.pendown() t.circle(-120,60)# 左眼 t.speed(10) t.delay(1)# 眼圈 t.penup() t.goto(-140,100) t.setheading(-45) t.begin_fill() t.pendown() a =0.2for i inrange(120):if0<= i <30or60<= i <90: a = a +0.1 t.lt(3)# 向左转3度 t.fd(a)# 向前走a的步长else: a = a -0.1 t.lt(3) t.fd(a) t.end_fill()# 眼白 t.fillcolor("white") t.penup() t.goto(-103,125) t.setheading(0) t.begin_fill() t.pendown() t.circle(14,360) t.end_fill()# 眼珠 t.penup() t.goto(-102,133) t.setheading(0) t.begin_fill() t.pendown() t.circle(6,360) t.end_fill()# 右眼# 眼圈 t.penup() t.goto(50,100) t.setheading(45) t.fillcolor("black") t.pencolor("black") t.begin_fill() t.pendown() a =0.2for i inrange(120):if0<= i <30or60<= i <90: a = a +0.1 t.lt(3)# 向左转3度 t.fd(a)# 向前走a的步长else: a = a -0.1 t.lt(3) t.fd(a) t.end_fill()# 眼白 t.fillcolor("white") t.penup() t.goto(13,125) t.setheading(0) t.begin_fill() t.pendown() t.circle(14,360) t.end_fill()# 眼珠 t.penup() t.goto(12,133) t.setheading(0) t.begin_fill() t.pendown() t.circle(6,360) t.end_fill()# 鼻子 t.speed(2) t.delay(2) t.pencolor("black") t.fillcolor("black") t.penup() t.goto(-55,133) t.begin_fill() t.pendown() t.fd(20) t.seth(-120) t.fd(20) t.seth(120) t.fd(20) t.end_fill()# 嘴 t.penup() t.goto(-70,110) t.setheading(-30) t.fillcolor("red") t.begin_fill() t.pendown() t.circle(50,60) t.setheading(-120) t.circle(-100,15) t.circle(-15,90) t.circle(-100,15) t.end_fill()# 四肢# 左臂 t.penup() t.goto(-175,100) t.fillcolor("black") t.begin_fill() t.setheading(-120) t.pendown() t.fd(100) t.setheading(-110) t.circle(20,180) t.fd(30) t.circle(-5,160) t.end_fill()# 右臂 t.penup() t.goto(85,100) t.setheading(60) t.begin_fill() t.pendown() t.fd(100) t.setheading(70) t.circle(20,180) t.fd(30) t.circle(-5,160) t.end_fill()# 小红心 t.penup() t.pencolor("red") t.fillcolor('red') t.goto(105,200) t.begin_fill() t.pendown() t.circle(-5,180) t.setheading(90) t.circle(-5,180) t.setheading(-120) t.fd(17) t.penup() t.goto(105,200) t.pendown() t.setheading(-60) t.fd(17) t.end_fill() t.pencolor("black") t.fillcolor("black")# 左腿 t.penup() t.goto(-120,-45) t.begin_fill() t.pendown() t.setheading(-90) t.circle(-140,20) t.circle(5,109) t.fd(30) t.circle(10,120) t.setheading(90) t.circle(-140,10) t.end_fill()# 右腿 t.penup() t.goto(30,-45) t.begin_fill() t.pendown() t.setheading(-90) t.circle(140,20) t.circle(-5,109) t.fd(30) t.circle(-10,120) t.setheading(90) t.circle(140,10) t.end_fill()# 冰糖外壳 t.pensize(3) t.penup() t.goto(-160,195) t.setheading(160) t.pendown() t.circle(-40,230) t.setheading(30) t.circle(-134,58) t.setheading(60) t.circle(-40,215) t.setheading(-60) t.fd(15) t.circle(2,200) t.setheading(65) t.fd(30) t.circle(-25,180) t.fd(100) t.circle(2,25) t.circle(-200,47) t.circle(2,60) t.circle(140,23) t.circle(-2,90) t.setheading(180) t.fd(70) t.circle(-2,90) t.fd(30) t.setheading(-160) t.circle(-100,35) t.setheading(-90) t.fd(30) t.circle(-2,90) t.fd(70) t.circle(-2,90) t.setheading(60) t.circle(140,30) t.circle(2,45) t.circle(-200,19) t.circle(2,130) t.fd(30) t.circle(-25,180) t.fd(100) t.setheading(90) t.circle(-200,30)# 冰糖面罩 t.speed(1) t.delay(0) t.pensize(3) t.penup() t.goto(65,120) t.setheading(90) t.pendown() t.pencolor("red") a =1for i inrange(120):if0<= i <30or60<= i <90:# 控制a的变化 a = a +0.25 t.lt(3)# 向左转3度 t.fd(a)# 向前走a的步长else: a = a -0.25 t.lt(3) t.fd(a) t.pencolor("orange") t.penup() t.goto(66,120) t.pendown() a =1for i inrange(120):if0<= i <30or60<= i <90: a = a +0.255 t.lt(3) t.fd(a)else: a = a -0.255 t.lt(3) t.fd(a) t.pencolor("green") t.penup() t.goto(67,120) t.pendown() a =1for i inrange(120):if0<= i <30or60<= i <90: a = a +0.2555 t.lt(3) t.fd(a)else: a = a -0.2555 t.lt(3) t.fd(a) t.pencolor("deep sky blue") t.penup() t.goto(68,120) t.pendown() a =1for i inrange(120):if0<= i <30or60<= i <90: a = a +0.25955 t.lt(3) t.fd(a)else: a = a -0.25955 t.lt(3) t.fd(a) t.pencolor("pink") t.penup() t.goto(71,120) t.pendown() a =1for i inrange(120):if0<= i <30or60<= i <90: a = a +0.26 t.lt(3) t.fd(a)else: a = a -0.26 t.lt(3) t.fd(a) t.pencolor("purple") t.penup() t.goto(72,120) t.pendown() a =1for i inrange(120):if0<= i <30or60<= i <90: a = a +0.269 t.lt(3) t.fd(a)else: a = a -0.269 t.lt(3) t.fd(a)# 五环 t.penup() t.goto(-55,-10) t.pendown() t.pencolor("blue") t.circle(10) t.penup() t.goto(-40,-10) t.pendown() t.pencolor("black") t.circle(10) t.penup() t.goto(-25,-10) t.pendown() t.pencolor("red") t.circle(10) t.penup() t.goto(-50,-20) t.pendown() t.pencolor("yellow") t.circle(10) t.penup() t.goto(-30,-20) t.pendown() t.pencolor("green") t.circle(10)# HappyBirthday t.speed(2) t.delay(2)defmove(angle, length): t.penup() t.seth(angle) t.fd(length)# prepare t.penup() t.fd(-180) t.seth(90)# 画笔方向# t.fd(50) t.pendown() t.pensize(10) t.pencolor("green") t.seth(0) t.hideturtle() t.speed(5)# 呀 t.fd(100)# 生 t.pencolor("green") t.circle(50,90) t.circle(50,-30) t.seth(0) t.fd(100) t.fd(-50) t.left(90) t.fd(30) t.fd(-60) t.left(90) t.fd(50) t.fd(-100) t.fd(50) t.left(90) t.fd(50) t.right(90) t.fd(60) t.fd(-120)# 日 t.penup() t.fd(-30) t.pendown() t.seth(90) t.fd(100) t.seth(0) t.fd(70) t.seth(-90) t.fd(50) t.seth(180) t.fd(70) t.seth(-90) t.fd(50) t.seth(0) t.fd(70) t.seth(90) t.fd(50)# 移动 move(0,30)# 快 t.pensize(8) t.circle(30,15) t.pendown() t.circle(30,60) t.penup() t.seth(0) t.fd(13) t.seth(90) t.pendown() t.fd(40) t.fd(-50) t.penup() t.seth(0) t.fd(13) t.pendown() t.seth(-180) t.circle(20,-90) t.circle(20,90) t.penup() t.fd(13) t.pendown() t.seth(-90) t.fd(60) move(0,40) move(90,80) t.pendown() t.seth(0) t.fd(30) t.seth(90) t.fd(30) t.fd(-30) t.seth(0) t.fd(20) t.seth(-90) t.fd(35) t.seth(0) t.fd(10) t.fd(-30) t.seth(90) t.fd(35) t.fd(-35) t.seth(0) t.fd(-25) move(-90,50) move(180,25) t.pendown() t.seth(0) t.penup() t.circle(50,20) t.pendown() t.circle(50,70) t.seth(-90) t.circle(50,60)# 移动 move(0,50) move(90,45)# 乐 t.pensize(10) t.pendown() t.fd(40) t.seth(0) t.circle(50,60) t.circle(50,-25) move(-90,15) t.pendown() t.fd(30) t.seth(0) t.fd(-25) t.fd(65) t.fd(-40) t.seth(-90) t.fd(60) t.seth(135) t.fd(20) move(135,10) t.pendown() t.seth(-135) t.fd(20) move(0,70) t.pendown() t.seth(135) t.fd(20)# 署名 t.penup() t.goto(450,-350) msg ='—小 y'# todo 此处可以修改你的署名for i in msg: t.color('green') t.write(i,True, align='left', font=('JetBrains Moon',45,'normal')) time.sleep(0.3) t.clear()# 清屏 time.sleep(3)# 让程序休眠3秒,休息3秒后开始绘制生日蛋糕# 开始绘制生日蛋糕 t.speed(2) t.delay(0)defdrawx(a, i): angle = m.radians(i)return a * m.cos(angle)defdrawy(b, i): angle = m.radians(i)return b * m.sin(angle)# 设置背景颜色,窗口位置以及大小 t.bgcolor("#d3dae8") t.speed(10) t.pensize(1) t.penup() t.goto(150,0) t.pendown()# 1 t.pencolor("white") t.begin_fill()for i inrange(360): x = drawx(150, i) y = drawy(60, i) t.goto(x, y) t.fillcolor("#fef5f7") t.end_fill()# 2 t.begin_fill()for i inrange(180): x = drawx(150,-i) y = drawy(70,-i) t.goto(x, y)for i inrange(180,360): x = drawx(150, i) y = drawy(60, i) t.goto(x, y) t.fillcolor("#f2d7dd") t.end_fill()# 3 t.pu() t.goto(120,0) t.pd() t.begin_fill()for i inrange(360): x = drawx(120, i) y = drawy(48, i) t.goto(x, y) t.fillcolor("#cbd9f9") t.end_fill()# 4 t.begin_fill() t.pencolor("#fee48c")for i inrange(540): x = drawx(120, i) y = drawy(48, i)+70 t.goto(x, y) t.goto(-120,0) t.fillcolor("#cbd9f9") t.end_fill()# 5 t.pu() t.goto(120,70) t.pd() t.pencolor("#fff0f3") t.begin_fill()for i inrange(360): x = drawx(120, i) y = drawy(48, i)+70 t.goto(x, y) t.fillcolor("#fff0f3") t.end_fill()# 6 t.pu() t.goto(110,70) t.pd() t.pencolor("#fff9fb") t.begin_fill()for i inrange(360): x = drawx(110, i) y = drawy(44, i)+70 t.goto(x, y) t.fillcolor("#fff9fb") t.end_fill()# 7 t.pu() t.goto(120,0) t.pd() t.begin_fill() t.pencolor("#ffa79d")for i inrange(180): x = drawx(120,-i) y = drawy(48,-i)+10 t.goto(x, y) t.goto(-120,0)for i inrange(180,360): x = drawx(120, i) y = drawy(48, i) t.goto(x, y) t.fillcolor("#ffa79d") t.end_fill()# 8 t.pu() t.goto(120,70) t.pd() t.begin_fill() t.pensize(4) t.pencolor("#fff0f3")for i inrange(1800): x = drawx(120,0.1* i) y = drawy(-18, i)+10 t.goto(x, y) t.goto(-120,70) t.pensize(1)for i inrange(180,360): x = drawx(120, i) y = drawy(48, i)+70 t.goto(x, y) t.fillcolor("#fff0f3") t.end_fill()# 9 t.pu() t.goto(80,70) t.pd() t.begin_fill() t.pencolor("#6f3732") t.goto(80,120)for i inrange(180): x = drawx(80, i) y = drawy(32, i)+120 t.goto(x, y) t.goto(-80,70)for i inrange(180,360): x = drawx(80, i) y = drawy(32, i)+70 t.goto(x, y) t.fillcolor("#6f3732") t.end_fill()# 10 t.pu() t.goto(80,120) t.pd() t.pencolor("#ffaaa0") t.begin_fill()for i inrange(360): x = drawx(80, i) y = drawy(32, i)+120 t.goto(x, y) t.fillcolor("#ffaaa0") t.end_fill()# 11 t.pu() t.goto(70,120) t.pd() t.pencolor("#ffc3be") t.begin_fill()for i inrange(360): x = drawx(70, i) y = drawy(28, i)+120 t.goto(x, y) t.fillcolor("#ffc3be") t.end_fill()# 12 t.pu() t.goto(80,120) t.pd() t.begin_fill() t.pensize(3) t.pencolor("#ffaaa0")for i inrange(1800): x = drawx(80,0.1* i) y = drawy(-12, i)+80 t.goto(x, y) t.goto(-80,120) t.pensize(1)for i inrange(180,360): x = drawx(80, i) y = drawy(32, i)+120 t.goto(x, y) t.fillcolor("#ffaaa0") t.end_fill()# 13 t.pu() t.goto(64,120) t.pd() t.pencolor("#b1c9e9") t.begin_fill()for i inrange(360): x = drawx(4, i)+60 y = drawy(1, i)+120 t.goto(x, y) t.goto(64,170)for i inrange(540): x = drawx(4, i)+60 y = drawy(1, i)+170 t.goto(x, y) t.goto(56,120) t.fillcolor("#b1c9e9") t.end_fill() t.pencolor("white") t.pensize(2)for i inrange(1,6): t.goto(64,120+10* i) t.pu() t.goto(56,120+10* i) t.pd() t.pu() t.goto(60,170) t.pd() t.goto(60,180) t.pensize(1)# t.pu() t.goto(64,190) t.pd() t.pencolor("#f1add1") t.begin_fill()for i inrange(360): x = drawx(4, i)+60 y = drawy(10, i)+190 t.goto(x, y) t.fillcolor("#f1add1") t.end_fill()# 14 t.pu() t.goto(-56,120) t.pd() t.pencolor("#b1c9e9") t.begin_fill()for i inrange(360): x = drawx(4, i)-60 y = drawy(1, i)+120 t.goto(x, y) t.goto(-56,170)for i inrange(540): x = drawx(4, i)-60 y = drawy(1, i)+170 t.goto(x, y) t.goto(-64,120) t.fillcolor("#b1c9e9") t.end_fill() t.pencolor("white") t.pensize(2)for i inrange(1,6): t.goto(-56,120+10* i) t.pu() t.goto(-64,120+10* i) t.pd() t.pu() t.goto(-60,170) t.pd() t.goto(-60,180) t.pensize(1)# t.pu() t.goto(-56,190) t.pd() t.pencolor("#f1add1") t.begin_fill()for i inrange(360): x = drawx(4, i)-60 y = drawy(10, i)+190 t.goto(x, y) t.fillcolor("#f1add1") t.end_fill()# 15 t.pu() t.goto(0,130) t.pd() t.pencolor("#b1c9e9") t.begin_fill()for i inrange(360): x = drawx(4, i) y = drawy(1, i)+130 t.goto(x, y) t.goto(4,180)for i inrange(540): x = drawx(4, i) y = drawy(1, i)+180 t.goto(x, y) t.goto(-4,130) t.fillcolor("#b1c9e9") t.end_fill() t.pencolor("white") t.pensize(2)for i inrange(1,6): t.goto(4,130+10* i) t.pu() t.goto(-4,130+10* i) t.pd() t.pu() t.goto(0,180) t.pd() t.goto(0,190) t.pensize(1)# t.pu() t.goto(4,200) t.pd() t.pencolor("#f1add1") t.begin_fill()for i inrange(360): x = drawx(4, i) y = drawy(10, i)+200 t.goto(x, y) t.fillcolor("#f1add1") t.end_fill()# 16 t.pu() t.goto(30,110) t.pd() t.pencolor("#b1c9e9") t.begin_fill()for i inrange(360): x = drawx(4, i)+30 y = drawy(1, i)+110 t.goto(x, y) t.goto(34,160)for i inrange(540): x = drawx(4, i)+30 y = drawy(1, i)+160 t.goto(x, y) t.goto(26,110) t.fillcolor("#b1c9e9") t.end_fill() t.pencolor("white") t.pensize(2)for i inrange(1,6): t.goto(34,110+10* i) t.pu() t.goto(26,110+10* i) t.pd() t.pu() t.goto(30,160) t.pd() t.goto(30,170) t.pensize(1)# t.pu() t.goto(34,180) t.pd() t.pencolor("#f1add1") t.begin_fill()for i inrange(360): x = drawx(4, i)+30 y = drawy(10, i)+180 t.goto(x, y) t.fillcolor("#f1add1") t.end_fill()# 17 t.pu() t.goto(-30,110) t.pd() t.pencolor("#b1c9e9") t.begin_fill()for i inrange(360): x = drawx(4, i)-30 y = drawy(1, i)+110 t.goto(x, y) t.goto(-26,160)for i inrange(540): x = drawx(4, i)-30 y = drawy(1, i)+160 t.goto(x, y) t.goto(-34,110) t.fillcolor("#b1c9e9") t.end_fill() t.pencolor("white") t.pensize(2)for i inrange(1,6): t.goto(-26,110+10* i) t.pu() t.goto(-34,110+10* i) t.pd() t.pu() t.goto(-30,160) t.pd() t.goto(-30,170) t.pensize(1)# t.pu() t.goto(-26,180) t.pd() t.pencolor("#f1add1") t.begin_fill()for i inrange(360): x = drawx(4, i)-30 y = drawy(10, i)+180 t.goto(x, y) t.fillcolor("#f1add1") t.end_fill()# 随机 color =["#e28cb9","#805a8c","#eaa989","#6e90b7","#b8b68f","#e174b5","#cf737c","#7c8782"]for i inrange(80): t.pu() x = r.randint(-120,120) y = r.randint(-25,30) t.goto(x, y) t.pd() t.dot(r.randint(2,5), color[r.randint(0,7)])for i inrange(40): t.pu() x = r.randint(-90,90) y = r.randint(-35,10) t.goto(x, y) t.pd() t.dot(r.randint(2,5), color[r.randint(0,7)])for i inrange(40): t.pu() x = r.randint(-80,80) y = r.randint(60,90) t.goto(x, y) t.pd() t.dot(r.randint(2,5), color[r.randint(0,7)])for i inrange(30): t.pu() x = r.randint(-50,50) y = r.randint(45,70) t.goto(x, y) t.pd() t.dot(r.randint(2,5), color[r.randint(0,7)])for i inrange(50): t.pu() x = r.randint(-500,500) y = r.randint(120,300) t.goto(x, y) t.pd() t.dot(r.randint(3,5), color[r.randint(0,7)]) t.seth(90) t.pu() t.goto(0,0) t.fd(210) t.left(90) t.fd(170) t.pd() t.write("Happy Birthday", font=("Curlz MT",50))# todo 此处可以修改画完蛋糕以后显示的文字 t.done()
🌸 写到最后
整个代码复制粘贴后,小y觉得需要修改的位置均用
# todo
标出,使用前莫忘修改哦!另外本代码可以使用Pyinstaller命令进行打包(变为exe可执行文件)。
赶快去给你的男朋友or女朋友安排上吧!同时小y也为你们送上真挚的祝福哦!
📧 Summary
花哨代码并不实用,但它可以为编程学习增加浓厚兴趣!
欢迎点赞👍+收藏🎁+关注❤
有兴趣一起学习编程的小伙伴可以私信小y一起学习,小y在Python,c/c++和matlab语言上均有一定的基础😜😜😜
版权归原作者 小 y 同 学 所有, 如有侵权,请联系我们删除。