《Python趣味工具》——自制emoji(4)计算机二级考试题

news2024/11/18 7:41:27

前面我们学习了如何制作emoji,相信你也是有很多想法了吧!今天我们就来看看几道计算机二级考试真题。


1. 绘制套圈

使用turtle库的circle()函数和seth()函数绘制套圈。

最小的圆圈半径为10像素,不同圆圈之间的半径差是40像素。

ps:注意要和题目要求的圆形方向一致哦~可以在绘制前先将方向调整为90度。

在这里插入图片描述
示例代码如下:

# TODO 导入turtle中的全部函数
from turtle import *
# 使用penup()函数抬起画笔
penup()
# 使用goto()函数移动到(100,0)的位置开始绘制
goto(100,0)
# 将画笔粗细设置为5
pensize(5)
pencolor("black")
# 使用pendown()函数落下画笔
pendown()
seth(90)
# 其他的部分就靠你完成啦~
def draw_circle(r):  
    circle(r,360)

    
for i in range(4):
    draw_circle(i*40+10)

2. 熬夜加班后的emoji

刚开始尝试实习的小何感受到程序猿996生活的不容易,她想用课上刚学的turtle画出熬夜加班后的emoji,我们一起来看看实现这个emoji吧😛

你需要做的是:

1.补充完成绘制眼白的eys_white( )函数

2.补充完成绘制眼珠的eys_black( )函数

下面是你绘制emoji时可以参考的坐标表:
在这里插入图片描述
示例代码如下:

# 导入turtle中的全部函数
from turtle import *
# 使用speed()函数设置速度,参数调整为20
speed(20)
# 定义draw_face()函数绘制脸部
def draw_face():
    # 抬起画笔
    penup()
    # 移动到坐标点为(-120,0)的地方
    goto(-120,0)
    # 落笔
    pendown()
    # 将画笔颜色设置为黑色"black"
    pencolor("black")
    # 将画笔粗细设置为10
    pensize(10)
    # 调整海龟朝向-90度方向
    seth(-90)
    # 开始填充颜色
    begin_fill()
    # 画圆,圆的半径为150,圆心角为360度
    circle(150,360)
    # 填充颜色为"gold"
    fillcolor("gold")
    # 停止填充颜色
    end_fill()

# 定义draw_mouth() 函数绘制嘴巴   
def draw_mouth():
    pensize(10)
    # 抬起画笔
    penup()
    # 移动到坐标点为(4,-77)的位置
    goto(4,-77)
    # 落笔
    pendown()
    # 调整海龟朝向0度方向
    seth(0)
    # 向前移动30步
    forward(30)   

# 定义eys_white()函数绘制眼白   
def eyes_white(): 
    # 设置画笔颜色为黑色
    pencolor("black")
    # 使用penup()函数抬起画笔
    penup()
    # 调整海龟朝向90度方向
    seth(90)
    # 移动到坐标点为(0,20)的位置
    goto(0,20)
    # 使用pendown()函数落笔
    pendown()
    # 使用fillcolor()函数设置填充颜色为"white"
    fillcolor("white")
    # 使用begin_fill()开始填充
    begin_fill()
    # 使用circle()函数绘制一个半径50的圆
    circle(50,360)
    # 使用end_fill()结束
    end_fill()
    # TODO 使用penup()函数抬笔
    penup()
    # TODO 移动到坐标点为(140,20)的位置
    goto(140,20)
    # TODO 使用pendown()函数落笔
    pendown()
    # TODO 使用begin_fill()开始填充
    begin_fill()
    # TODO 使用circle()函数绘制一个半径50的圆
    circle(50,360)
    # TODO 使用end_fill()结束
    end_fill()
    # 使用penup()函数抬笔
    penup()
        
#  定义一个eyes_black()函数绘制黑眼珠
def eyes_black():
    # 移动到坐标点为(-40,20)的位置
    goto(-40,20)
    # 使用pendown()函数落笔
    pendown()
    # 使用pensize()函数设置画笔粗细为15
    pensize(15)
    # 使用fillcolor将填充颜色设置为黑色
    fillcolor("black")
    # 使用begin_fill()函数开始填充
    begin_fill()
    # 使用circle()函数绘制一个半径为10,圆心角为360度
    circle(10,360)
    # 使用end_fill()结束填充
    end_fill()
    # TODO 使用penup()函数抬笔
    penup()
    # TODO 移动到坐标点为(100,20)的位置
    goto(100,20)
    # TODO 使用pendown()函数落笔
    pendown()
    # TODO 使用begin_fill()函数开始填充
    begin_fill()
    # TODO 使用circle()函数绘制一个半径为10,圆心角为360度
    circle(10,360)
    # TODO 使用end_fill()结束填充
    end_fill()
    # 使用hideturtle()函数隐藏画笔
    hideturtle()
    
# 调用draw_face()函数画脸
draw_face()
# 调用draw_mouth()函数画嘴巴
draw_mouth()
# 调用eyes_white()函数画白眼珠
eyes_white()
# 调用eyes_black()函数画黑眼珠
eyes_black()   

3. 螺旋正方形:

计算机二级真题演练(中)
使用turtle库的forward( )函数和seth( )函数绘制螺旋状的正方形,正方形边长从10像素开始,第一条边从0度方向开始,效果如下图所示:
在这里插入图片描述

你需要完成的是:
1.定义常量d=0,k=10
2.从初始位置(0,0)开始绘制并设置画笔粗细为5
3.绘制图像时每次forward函数参数为k,k递增5
4.绘制图像时每次seth函数参数为d,d递增91

示例代码如下:

# TODO 利用from.....import....导入turtle模块所有函数
from turtle import *
# TODO 定义常量d=0,k=10
d=0
k=10

# 确定绘制初始位置(0,0)
goto(0,0)
# 设置画笔粗细为5
pensize(5)
# TODO 画出图像
for j in range(10):
    for i in range(4):
        # TODO 调用forward函数绘制,参数为k
        forward(k)
        # TODO d递增91
        d+=91
        # TODO 调用seth函数绘制,参数为d
        seth(d)
        # TODO k递增5
        k+=5

4. 脑力测试图:

最近学校正在开展全校范围内的“寻找最强大脑”活动,社团负责人小波想邀请你也参与到他们的选拔策划中,为选拔者绘制一幅脑力测试图

你需要完成的是在300次循环中:
1.每次线条绘制向前进的距离是2*x
2.每次交替使用colors中的颜色(可以参考tips哦~)
3.每次画完后向左旋转91度以形成交叉螺旋

绘制完成后的效果图如下:
在这里插入图片描述

示例代码如下:

# TODO 利用from.....import....导入turtle模块所有函数

from turtle import *
# 设置画笔粗细为4
pensize(4)
# 设置四种颜色
colors = ["red","yellow","purple","blue"]
# TODO 开始绘制

for x in range(300):
    # 隐藏画笔
    hideturtle()
    # 设置画笔移动速度
    speed(300)
    # TODO 每次线条绘制向前进的距离是2*x
    forward(2*x)
    # TODO 改变颜色
    pencolor(colors[x%4])
  
    # TODO 向左旋转91度形成交叉螺旋
    left(91)

5. 动态emoji

刚学完emoji不久的小何想要自己尝试完成制作完成一个动态emoji

小何决定从简单做起,制作一个微笑和难过交替进行的emoji,可是小何时间仓促只完成了微笑部分,你能仿照微笑部分的代码完成替小何难过部分的代码吗?

你需要完成:

  1. 参考emoji_1( )函数的实现步骤,完成emoji_2( )函数的实现

  2. 首先你需要将画笔移动到((-70,-80)

  3. 其次你需要将画笔向右旋转120度

  4. 将画笔粗细设置为5

  5. 最后绘制一个半径为80,圆心角为-120度的圆,完成后将画笔调制0度

绘制效果如下图所示:
在这里插入图片描述

示例代码如下:

from turtle import *
import time

# 定义绘制脸部函数
def draw_face():
    speed(6)
    pensize(4)
    # 画圆脸
    pencolor('orange')
    penup()
    goto(0, -150)
    pendown()
    begin_fill()
    fillcolor('yellow')
    circle(150)
    end_fill()
    hideturtle()
    
# 定义绘制眼睛函数
def draw_eyes():
    pensize(2)
    # 画左眼睛
    pencolor('brown')
    penup()
    goto(60, 45)
    pendown()
    begin_fill()
    circle(25)
    fillcolor('white')
    end_fill()
    pencolor('black')
    begin_fill()
    circle(13)
    fillcolor('black')
    end_fill()
    # 画右眼睛
    pencolor('brown')
    penup()
    goto(-60, 45)
    pendown()
    begin_fill()
    circle(25)
    fillcolor('white')
    end_fill()
    pencolor('black')
    begin_fill()
    circle(13)
    fillcolor('black')
    end_fill()
    hideturtle()
    
# 定义emoji_1函数,绘制微笑表情
def emoji_1():
    draw_face()
    draw_eyes()
    pencolor('brown')
    penup()
    goto(-70,-60)
    pendown()
    right(65)
    pensize(5)
    circle(75,130)
    seth(0)
    hideturtle()
    
# 定义emoji_2函数,绘制难过表情
def emoji_2():
    draw_face()
    draw_eyes()
    pencolor('brown')
    # TODO 抬起画笔
    penup()
    # TODO 将画笔移动到(-70,-80)
    goto(-70,-80)
    # TODO 落下画笔
    pendown()
    # TODO 画笔向右旋转120度
    right(120)
    # TODO 画笔粗细设置为5
    pensize(5)
    # TODO 绘制一个半径为80,圆心角为-120度的圆
    circle(80,-120)
    # TODO 将画笔调至0度
    seth(0)
    # 隐藏画笔
    hideturtle()


i = 1
while i<=10:
    tracer(0)
    emoji_1()
    time.sleep(1)
    update()
    tracer(0)
    emoji_2()
    time.sleep(1)
    update()
    i = i + 1

5. 一朵玫瑰花

送你一朵玫瑰花!快用你刚学会的turtle绘制一朵玫瑰花,送给你身边想要表白的人吧🥰

你需要完成:

  1. 参考注释完成第二片花瓣的绘制

  2. 参考注释完成第二片叶子的绘制

效果图如下所示:
在这里插入图片描述
示例代码如下:

from turtle import *

# 设置初始位置
penup()
left(90)
forward(130)
pendown()
right(90)

# 绘制花蕊
fillcolor("red")
begin_fill()
circle(10,180)
circle(25,110)
left(50)
circle(60,45)
circle(20,170)
right(24)
forward(30)
left(10)
circle(30,110)
forward(20)
left(40)
circle(90,70)
circle(30,150)
right(30)
forward(15)
circle(80,90)
left(15)
forward(45)
right(165)
forward(20)
left(155)
circle(150,80)
left(50)
circle(150,90)
end_fill()

# 绘制第一片花瓣
left(150)
circle(-90,70)
left(20)
circle(75,105)
seth(60)
circle(80,98)
circle(-90,40)

# 绘制第二片花瓣
# TODO 向左旋转180度
left(180)
# TODO 绘制半径为90,圆心角为40度的圆
circle(90,40)
# TODO 绘制半径为-80,圆心角为98度的圆
circle(-80,98)
seth(-83)

# 绘制第一片叶子
forward(30)
left(90)
forward(25)
left(45)
fillcolor("green")
begin_fill()
circle(-80,90)
right(90)
circle(-80,90)
end_fill()
right(135)
forward(30)
left(180)
forward(55)
left(90)
forward(30)

# 绘制第二片叶子
right(90)
right(45)
fillcolor("green")
begin_fill()
# TODO 绘制半径为80,圆心角为90度的圆
circle(80,90)
# TODO 向左旋转90度
left(90)
# TODO 绘制半径为80,圆心角为90度的圆
circle(80,90)
end_fill()
left(135)
# TODO 画笔前进30
forward(30)
# TODO 向左旋转180度
left(180)
# TODO 画笔前进30
forward(30)
# TODO 向右旋转90度
right(90)
# TODO 绘制半径为130,圆心角为60度的圆
circle(130,60)

7. 斯洛克形状图案:

使用turtle库绘制类似斯洛克形状图案,效果图如下:
在这里插入图片描述
你需要完成的是:

  1. 完成drawCircle( )函数,圆的半径为20,画完后画笔前进40

  2. 定义一个按照行画圆的函数drawRowCircle(n),请先点击提示进行学习,参数n为绘制的行数。
    我们可以通过循环来写drawRowCIrcle( )函数哦~,快来看看我们是怎么做到的吧

1.创建循环for j in range(n,1,-1)从上至下依次绘制斯洛克的每一行,此处参数意义为从n行画到1行,每次递减1行

2.创建循环 for i in range(j)调用drawCircle( )函数从左至右依次绘制每一行的圆

注意:我们来看看range函数的新用法吧
range(start, stop[, step])

参数说明:
start: 计数从 start 开始, 默认是从 0 开始, 例如range(5)等价于range(0,5) ;
stop: 计数到 stop 结束, 但不包括 stop, 例如:range(0,5) 是[0, 1, 2, 3, 4]没有5 ;
step: 步长, 默认为1, 例如: range(0,5) 等价于 range(0, 5, 1) ;

>>>range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]
>>> range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]

示例代码如下:

# 利用from.....import....导入turtle模块所有函数
from turtle import *
# 定义画圆的函数drawCircle,设置画笔粗细为5并落下画笔,绘制半径为20的圆,完成后抬起画笔前进40
def drawCircle():
    pensize(5)
    pendown()
    # TODO 绘制半径为20的圆
    circle(20)
    penup()
    # TODO 画笔前进40
    forward(40)
    
# 定义按照行画圆的函数drawRowCircle(n),参数n为绘制的行数
def drawRowCircle(n):
    penup()
    # TODO 定义绘制的初始位置(-60,40)
    goto(-60,40)
    pendown()
    # 绘制开始
    # TODO 创建循环,从上至下依次绘制斯洛克的每一行
    for j in range(n,1,-1):
        # TODO 创建循环,从左至右依次绘制每一行的圆
        for i in range(j):
            # TODO 调用drawCircle( )函数绘制圆  
            drawCircle()
        # TODO 前进(-j*40-20)距离,以到达下一行第一个圆绘制的位置
        forward(-j*40-20)
        # TODO 向右旋转90度
        right(90)
        # 前进40距离
        forward(40)
        # TODO 向左旋转90度
        left(90)
        # TODO 前进40距离
        forward(40)
    # TODO 调用drawCircle()函数
    drawCircle()
    
# 调用drawRowCircle函数,参数为5,从上往下画
drawRowCircle(5)
hideturtle()


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1025329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【生物信息学】奇异值分解(SVD)

目录 一、奇异值分解&#xff08;SVD&#xff09; 二、Python实现 1. 调包np.linalg.svd() 2. 自定义 三、SVD实现链路预测 一、奇异值分解&#xff08;SVD&#xff09; SVD分解核心思想是通过降低矩阵的秩来提取出最重要的信息&#xff0c;实现数据的降维和去噪。 ChatG…

针对敏感数据的安全转录服务

即便在新冠肺炎疫情期间&#xff0c;继续保持了最高级别的机密性 新冠肺炎疫情带来的各种限制向所有服务提供商提出了挑战&#xff0c;促使提供商们想方设法采取更富想象力的新方法来满足客户的需求。澳鹏采用了一种由两种方案组成的工作机制&#xff0c;服务于客户机密材料的…

systrace使用注意事项

打开systrace文件报错&#xff1a;Unable to select a master clock domain because no path can be found from “SYSTRACE” to “LINUX_FTRACE_GLOBAL”. 使用systrace生成的trace.html文件无法打开&#xff0c;或者报上面的错误&#xff0c;可以选择下面这个方式&#xff1…

Springboot 实践(19)负载平衡配置与运用

前文Springboot 实践&#xff08;1&#xff09;至Springboot 实践&#xff08;18&#xff09;&#xff0c;我们分别讲解了springboot数据源配置、swagger-ui测试controller、整合security、整合Oauth2.0、服务注册、路由配置以及配置中心等单例功能开发&#xff0c;实现了各个系…

Avalonia开发(一)环境搭建

一、介绍 开源 GitHub&#xff1a;https://github.com/AvaloniaUI/Avalonia/多平台支持&#xff0c;包括Windows、mac OS、Linux、iOS、Android、Samsung Tizen&#xff08;很快支持&#xff09;、WebAssemblyIDE支持&#xff0c;Visual Studio扩展支持&#xff0c;JetBrains …

NLP技术如何为搜索引擎赋能

目录 1. NLP关键词提取与匹配在搜索引擎中的应用1. 关键词提取例子 2. 关键词匹配例子 Python实现 2. NLP语义搜索在搜索引擎中的应用1. 语义搜索的定义例子 2. 语义搜索的重要性例子 Python/PyTorch实现 3. NLP个性化搜索建议在搜索引擎中的应用1. 个性化搜索建议的定义例子 2…

学习笔记-接口测试(postman、jmeter)

目录 一、什么是接口测试 二、前端和后端 三、get请求和post请求的区别 四、cookie和session 五、接口测试的依据 六、HTTP状态码 七、通用接口用例 八、postman接口测试 九、Jmeter接口测试 一、什么是接口测试 通常做的接口测试指的是系统对外的接口&#xff0c;比…

【深度学习】 Python 和 NumPy 系列教程(九):NumPy详解:1、创建数组的n种方式

目录 一、前言 二、实验环境 三、NumPy 0. 多维数组对象&#xff08;ndarray&#xff09; a. 多维数组的属性 1. 创建数组 a. 使用numpy.array函数&#xff1a; b. 使用numpy.zeros函数 c. 使用numpy.ones函数 d. 使用numpy.arange函数 e. 使用numpy.linspace函数 …

旋转链表-双指针思想-LeetCode61

题目要求&#xff1a;给定链表的头结点&#xff0c;旋转链表&#xff0c;将链表每个节点向右移动K个位置。 示例&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k2 输出&#xff1a;[4,5,1,2,3] 双指针思想&#xff1a; 先用双指针策略找到倒数K的位置&#xff0c;也就是(…

根据商品ID获得淘宝商品详情, 获得淘宝商品详情高级版,获得淘宝商品评论, 获得淘宝商品快递费用 ,获得淘口令真实,批量获得淘宝商品上下架时间)

参数说明 通用参数说明 参数不要乱传&#xff0c;否则不管成功失败都会扣费url说明 https://api-gw.…….cn/平台/API类型/ 平台&#xff1a;淘宝&#xff0c;京东等&#xff0c; API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_…

火山引擎A/B测试在消费行业的案例实践

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 近日&#xff0c;火山引擎数智平台举办了“走进火山-全链路增长&#xff1a;数据飞轮转动消费新生力”的活动&#xff0c;其中火山引擎数智平台DataTester产品负责人…

家居设计软件Live Home 3D Pro mac中文版特点介绍

Live Home 3D Pro mac是一款专业的3D家居设计软件&#xff0c;可以帮助用户轻松创建和设计家居平面图和3D模型&#xff0c;并进行渲染和虚拟漫游。​​​​​​​ ​Live Home 3D Pro mac软件特点 1. 界面友好&#xff1a;Live Home 3D Pro的界面友好&#xff0c;操作简单方便…

MyBatis基础之SqlSession

SqlSession 线程安全问题 当你翻看 SqlSession 的源码时&#xff0c;你会发现它只是一个接口。我们通过 MyBatis 操作数据库&#xff0c;实际上就是通过 SqlSession 获取一个 JDBC 链接&#xff0c;然后操作数据库。 SqlSession 接口有 3 个实现类&#xff1a; #实现类1Defa…

北斗+渔业:且看北斗卫星如何提升渔业监管水平

近日&#xff0c;为确保渔业船舶海上航行安全和管理&#xff0c;海南省农业农村厅近日发布通告&#xff1a;全省小型海洋渔船须于今年9月30日前完成北斗船载终端安装&#xff0c;大中型海洋渔船须于今年11月30日前同时完成北斗船载终端和“插卡式AIS”终端安装。 近年来&#x…

两种风格的纯CSS3加载动画

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>加载动画</title><style>.loader {w…

调用feign接口时手动设置请求头信息

调用feign接口手动设置请求头 一 需求场景&#xff1a;二 解决方法2.1 feign接口添加RequestHeader的注解2.2 provider正常从请求头获取参数2. 3 consumer手动传参2.4 测试 一 需求场景&#xff1a; 我们在provider服务有些参数是从请求头中获取的&#xff0c;但是consumer服务…

单元测试的重要性:编写更安全、更可靠的代码

在软件开发过程中&#xff0c;测试是非常重要的一环。而在众多的测试方法中&#xff0c;单元测试占据了不可忽视的地位。那么&#xff0c;为什么我们需要进行单元测试呢&#xff1f;以下将从理论和实践两方面进行详细的解释。 一、单元测试的定义和目的 单元测试是指对软件中的…

FullGC了怎么办?

什么情况下回触犯FullGC 使用了大对象 //大对象会直接进入老年代在程序中长期持有了对象的引用 //对象年龄达到指定阈值也会进入老年代JVM内存设置不合理 FullGC出现的表象 CPU飙升或忽高忽低&#xff1b;程序性能不问题&#xff0c;接口响应时间比较长。 如何判断FullGC …

ChatGLM GPU多卡并行训练

1.为什么要使用多GPU并行训练 简单来说,有两种原因:第一种是模型在一块GPU上放不下,两块或多块GPU上就能运行完整的模型(如早期的AlexNet)。第二种是多块GPU并行计算可以达到加速训练的效果。想要成为“炼丹大师“,多GPU并行训练是不可或缺的技能。 2. 常见的多GPU训练方…