首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python少儿编程,用python表达我爱你

新建一个python文件,命名ILoveYou.py

音乐功能已被注释,如果需要启用音乐,去掉注释,并在ILoveYou.py文件相同的目录下添加音乐文件,注意音乐名字要和代码中的音乐名字一致,可以修改代码名字也可以修改本地的音乐名字,代码中的音乐名字叫memories.mp3

详细代码,复制粘贴即可执行

'''

使用Python的turtle和pygame库来绘制"I Love You"字样和一个心形,同时播放音乐的代码

'''

# 导入turtle库,用于绘图

import turtle

# 导入time库,用于控制时间

import time

# 从pygame库中导入mixer模块,用于播放音乐

from pygame import mixer

#如果音乐,去掉13行到17行的代码的注释

# 初始化mixer模块,设置音频参数

# mixer.pre_init(frequency=48000, size=-16, channels=2, buffer=512)

# 启动mixer模块

# mixer.init()

# 加载音乐文件

# mixer.music.load("memories.mp3")

# 创建一个turtle对象,我们将用它来绘图

t = turtle.Turtle()

# 定义一个函数,用于绘制心形的曲线部分

def curve():

# 设置画笔颜色为白色,画笔大小为3,绘图速度为5

t.pen(pencolor="white", pensize=3, speed=5)

# 循环200次

for i in range(200):

# 向右转1度

t.rt(1)

# 向前移动1步

t.fd(1)

# 定义一个函数,用于绘制心形

def love_sign():

# 设置画笔颜色为白色,填充颜色为热粉色,画笔大小为3,绘图速度为5

t.pen(pencolor="white",fillcolor="hot pink", pensize=3, speed=5)

# 设置形状为乌龟

t.shape("turtle")

# 设置形状大小

t.shapesize(1,1,1)

# 开始填充颜色

t.begin_fill()

# 向左转50度

t.lt(50)

# 向前移动113步

t.fd(113)

# 调用curve函数,绘制心形的一半

curve()

# 向左转120度

t.lt(120)

# 调用curve函数,绘制心形的另一半

curve()

# 向前移动112步

t.fd(112)

# 结束填充颜色

t.end_fill()

# 隐藏乌龟

t.hideturtle()

# 创建一个窗口对象

window = turtle.Screen()

# 设置窗口背景色为黑色

window.bgcolor('black')

# 设置窗口大小为800x700

window.screensize(800, 700)

# 设置窗口位置和大小

window.setup(width=1.0, height=1.0, startx=None, starty=None)

# 设置窗口标题为"我爱你"

window.title("我爱你")

# 播放音乐

# mixer.music.play() #如果音乐,去掉这行代码的注释

# 提起画笔,移动时不会绘图

t.penup()

# 将乌龟移动到(-80,300)的位置

t.goto(-80,300)

# 等待1秒

time.sleep(1)

# 放下画笔,移动时会绘图

t.pendown()

# 设置形状大小

t.shapesize(1,2,1)

# 'I'

# 设置画笔颜色为白色,填充色为深紫色,画笔大小为3,画笔速度为8

t.pen(pencolor="white",fillcolor="dark violet", pensize=3, speed=8)

t.begin_fill() # 开始填充颜色

t.fd(160) # 向前移动160个单位

t.rt(90) # 向右转90度

t.fd(25) # 向前移动25个单位

t.rt(90) # 向右转90度

t.fd(60) # 向前移动60个单位

t.lt(90) # 向左转90度

t.fd(140) # 向前移动140个单位

t.lt(90) # 向左转90度

t.fd(60) # 向前移动60个单位

t.rt(90) # 向右转90度

t.fd(25) # 向前移动25个单位

t.rt(90) # 向右转90度

t.fd(160) # 向前移动160个单位

t.rt(90) # 向右转90度

t.fd(25) # 向前移动25个单位

t.rt(90) # 向右转90度

t.fd(60) # 向前移动60个单位

t.lt(90) # 向左转90度

t.fd(140) # 向前移动140个单位

t.left(90) # 向左转90度

t.fd(60) # 向前移动60个单位

t.rt(90) # 向右转90度

t.fd(25) # 向前移动25个单位

t.end_fill() # 结束填充颜色

# End of 'I'

# 提起画笔,移动到(-550,-20)位置

t.penup()

t.goto(-550,-20)

# 放下画笔,开始绘制

t.pendown()

# 开始绘制字母'L'

# 设置画笔颜色为白色,填充色为深紫色,画笔大小为3,速度为2

t.pen(pencolor="white",fillcolor="dark violet", pensize=3, speed=2)

# 开始填充颜色

t.begin_fill()

# 绘制'L'的右边

t.rt(90)

t.fd(25)

t.rt(90)

t.fd(165)

# 绘制'L'的底部

t.lt(90)

t.fd(115)

t.rt(90)

t.fd(25)

t.rt(90)

t.fd(140)

t.rt(90)

t.fd(190)

t.rt(90)

# 结束填充颜色

t.end_fill()

# 提起画笔,移动到下一个字母的位置

t.penup()

t.fd(140)

# 在'L'和'O'之间留出一定的空隙

t.fd(70)

# 开始绘制字母'O'

# 设置画笔颜色为白色,填充色为青色,画笔大小为3,速度为8

t.pen(pencolor="white",fillcolor="cyan", pensize=3, speed=8)

# 开始填充颜色

t.begin_fill()

# 绘制'O'的外圈

t.rt(90)

t.fd(190)

t.lt(90)

t.pendown()

t.circle(60)

# 绘制'O'的内圈

t.lt(90)

t.penup()

t.fd(20)

t.rt(90)

t.pendown()

t.circle(40)

t.rt(90)

t.penup()

t.fd(20)

t.lt(90)

# 结束填充颜色

t.end_fill()

# 在'O'和'V'之间留出一定的空隙

t.fd(100)

# 放下画笔,准备开始绘制'V'

t.pendown()

# 'V'

# 开始绘制字母'V'

# 设置画笔颜色为白色,填充色为深紫色,画笔大小为3,速度为8

t.pen(pencolor="white",fillcolor="dark violet", pensize=3, speed=8)

# 开始填充颜色

t.begin_fill()

# 绘制'V'的左边

t.lt(100)

t.fd(120)

t.rt(100)

t.fd(20)

t.rt(80)

t.fd(100)

# 绘制'V'的右边

t.lt(80)

t.fd(20)

t.lt(80)

t.fd(100)

t.rt(80)

t.fd(20)

t.rt(100)

t.fd(120)

t.rt(80)

t.fd(50)

t.lt(180)

# 结束填充颜色

t.end_fill()

# 结束 'V'字母绘制

# 提起画笔,移动到下一个字母的位置

t.penup()

# 在'V'和'E'之间留出一定的空隙

t.fd(100)

# 放下画笔,准备开始绘制'E'

t.pendown()

# 开始绘制字母'E'

# 设置画笔颜色为白色,填充色为深紫色,画笔大小为3,速度为8

t.pen(pencolor="white",fillcolor="dark violet", pensize=3, speed=8)

# 开始填充颜色

t.begin_fill()

# 绘制'E'的外框

t.lt(90)

t.fd(120)

t.rt(90)

t.fd(80)

t.rt(90)

t.fd(20)

t.rt(90)

t.fd(60)

t.lt(90)

t.fd(30)

t.lt(90)

t.fd(60)

t.rt(90)

t.fd(20)

t.rt(90)

t.fd(60)

t.lt(90)

t.fd(30)

t.lt(90)

t.fd(60)

t.rt(90)

t.fd(20)

t.rt(90)

t.fd(80)

# 结束填充颜色

t.end_fill()

# End of 'E'

# End of 'Love'

t.penup()

t.rt(180)

# Gap between 'E' and 'Y'

t.fd(200)

t.pendown()

# Start of 'You'

# 'Y'

t.pen(pencolor="white",fillcolor="dark violet", pensize=3, speed=2)

t.begin_fill()

t.lt(90)

t.fd(50)

t.lt(30)

t.fd(80)

t.rt(120)

t.fd(20)

t.rt(60)

t.fd(60)

t.lt(180)

t.rt(60)

t.fd(60)

t.rt(60)

t.fd(20)

t.rt(120)

t.fd(80)

t.lt(30)

t.fd(50)

t.rt(90)

t.fd(20)

t.rt(180)

t.end_fill()

# End of 'Y'

t.penup()

# Gap between 'Y' and 'O'

t.fd(120)

t.pendown()

# 'O'

t.pen(pencolor="white",fillcolor="cyan", pensize=3, speed=8)

t.begin_fill()

t.circle(60)

t.lt(90)

t.penup()

t.fd(20)

t.pendown()

t.rt(90)

t.circle(40)

t.rt(90)

t.penup()

t.fd(20)

t.lt(90)

t.end_fill()

# End of 'O'

# Gap between 'O' and 'U'

t.fd(100)

t.circle(60, extent=60)

t.pendown()

# 'U'

t.pen(pencolor="white",fillcolor="dark violet", pensize=3, speed=8)

t.begin_fill()

t.lt(30)

# Height of 'U'

t.fd(85)

t.lt(90)

t.fd(20)

t.lt(90)

t.fd(70)

t.circle(-20, extent=180)

t.fd(70)

t.lt(90)

t.fd(20)

t.lt(90)

t.fd(85)

t.circle(40, extent=180)

t.end_fill()

# End of 'U'

# End of 'You'

t.penup()

# t.goto(300,130)

t.rt(180)

t.fd(35)

t.lt(90)

t.fd(140)

t.lt(90)

t.pendown()

# 调用函数love_sign()来绘制一个心形的标志

love_sign()

# 等待5000秒,让用户有足够的时间欣赏绘制的图形和听音乐

time.sleep(5000)

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OCDGLT2YZEe7EouFTGbkvjBQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券