当前位置: 首页 > news >正文

AI学习第六天-python的基础使用-趣味图形

在 Python 编程学习过程中,turtle库是一个非常有趣且实用的工具,它可以帮助我们轻松绘制各种图形。结合for循环、random模块以及自定义方法等知识点,能够创作出丰富多彩的图案。下面就来分享一下相关的学习笔记。

一、基础知识点回顾

(一)for循环

for循环是 Python 中用于遍历可迭代对象(如列表、字符串、范围等)的一种控制结构。其基本语法为:

收起

python

for 变量 in 可迭代对象:循环体代码

turtle绘图中,常利用for循环来重复执行绘图动作,比如绘制多边形时重复向前移动和旋转的操作。

(二)random模块

random模块用于生成随机数。在绘图时,它能为图形添加随机性,比如随机选择颜色。常用的函数有random.choice(),用于从序列(如列表)中随机选择一个元素。例如:

收起

python

import random
colors = ['red', 'green', 'blue']
random_color = random.choice(colors)

(三)方法与main入口

自定义方法(函数)可以将重复的代码块封装起来,提高代码的复用性。在 Python 中,定义方法的语法如下:

收起

python

def 方法名(参数列表):方法体代码return 返回值(可选)

if __name__ == '__main__':是 Python 中的一个特殊语句,它确保在当前脚本作为主程序运行时,其下的代码才会被执行。当该脚本被其他模块导入时,这部分代码不会被执行,方便进行模块的测试和封装。

二、使用turtle库绘制多边形花朵

(一)代码实现

收起

python

import random
import turtledef draw_flower(count, length):colors = ['red', 'green', 'blue', 'yellow', 'orange', 'purple']t = turtle.Turtle()t.shape("turtle")for i in range(count):t.color(random.choice(colors))t.forward(length)t.left(360 / count)turtle.done()if __name__ == '__main__':draw_flower(8, 100)

(二)代码解析

  1. 导入模块:使用import randomimport turtle分别导入random模块和turtle库。
  2. 定义draw_flower方法:该方法接受两个参数count(表示多边形的边数,即花朵的花瓣数)和length(表示边长) 。
  3. 设置画笔属性:创建turtle.Turtle()对象t,并设置画笔形状为turtle
  4. 绘制花朵:利用for循环,循环次数为count。在每次循环中,通过random.choice(colors)随机选择一种颜色,然后让画笔向前移动length的距离,再向左旋转360/count度,这样就能绘制出一个由不同颜色多边形组成的花朵形状。
  5. 主程序入口:在if __name__ == '__main__':代码块中,调用draw_flower(8, 100),绘制一个有 8 片花瓣,边长为 100 的花朵。

通过花朵绘制方式的学习,不仅深入了解了turtle库的绘图功能,还熟练掌握了for循环、random模块以及自定义方法的使用。在后续的学习中,可以继续探索turtle库的其他功能,创作出更复杂、更精美的图形。

import random
import turtle
def draw_flower( length):colors = ['red', 'green', 'blue', 'yellow', 'orange', 'purple']t = turtle.Turtle()t.shape("turtle")#t.color(random.choice(colors))t.fillcolor("yellow")t.begin_fill()t.circle(length)t.end_fill()t.penup()t.goto(-25,70)t.pendown()t.fillcolor("black")t.begin_fill()t.circle(5)t.end_fill()t.penup()t.goto(25, 70)t.pendown()t.fillcolor("black")t.begin_fill()t.circle(5)t.end_fill()t.penup()t.goto(-25, 45)t.rt(90)t.pendown()t.width(5)t.circle(25,160)turtle.done()if __name__ == '__main__':draw_flower( 60)


import turtle
def draw_flower( length):t = turtle.Turtle()t.shape("turtle")t.penup()t.goto(0, 63)t.pendown()t.left(180)t.fillcolor("black")t.begin_fill()t.circle(length * 2, 180)t.end_fill()t.fillcolor("white")t.begin_fill()t.circle(length * 2, 180)t.end_fill()t.penup()t.goto(0, 63)t.pendown()t.fillcolor("white")t.begin_fill()t.circle(length,180)t.end_fill()t.penup()t.goto(0, -63*3)t.pendown()t.fillcolor("black")t.begin_fill()t.circle(length , 180)t.end_fill()t.penup()t.goto(0, length/3)t.fillcolor("black")t.begin_fill()t.circle(length/3)t.end_fill()t.penup()t.goto(0, (-63*2)+length/3)t.fillcolor("white")t.begin_fill()t.circle(length / 3)t.end_fill()t.penup()turtle.done()if __name__ == '__main__':draw_flower( 63)

http://www.lryc.cn/news/544121.html

相关文章:

  • [VMware]卸载VMware虚拟机和Linux系统ubuntu(自记录版)
  • J-LangChain,用Java实现LangChain编排!轻松加载PDF、切分文档、向量化存储,再到智能问答
  • Cuppa CMS v1.0 任意文件读取(CVE-2022-25401)
  • 可以免费无限次下载PPT的网站
  • STM32中使用PWM对舵机控制
  • 使用插件 `vue2-water-marker`添加全局水印
  • MySQL表约束的种类与应用
  • 【大模型+知识图谱】大模型与知识图谱融合:技术演进、实践应用与未来挑战
  • MS SQL 2008 技术内幕:T-SQL 语言基础
  • MySQL-MATCH ... AGAINST工具
  • 微服务合并
  • Shell脚本基础:用Bash自动化任务
  • 基于W2605C语音识别合成芯片的智能语音交互闹钟方案-AI对话享受智能生活
  • 【Java项目】基于Spring Boot的网上商城购物系统
  • 开放标准(RFC 7519):JSON Web Token (JWT)
  • JBoltAI_SpringBoot如何基于Deepseek官网API区分 R1大模型深度思考和具体回答的内容?
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-model.py
  • MySQL 事务笔记
  • react使用拖拽,缩放组件,采用react-rnd解决
  • 【C++基础】什么是C++?
  • 3 算法1-3 火星人
  • 【原创工具】同文件夹PDF文件合并 By怜渠客
  • 数据结构-直接插入和希尔排序
  • vue3表单验证的时候访问接口如果有值就通过否则不通过.主动去触发校验
  • Trae根据原型设计稿生成微信小程序密码输入框的踩坑记录
  • 【数据结构】 最大最小堆实现优先队列 python
  • 基于多层感知机(MLP)实现MNIST手写体识别
  • QT和有道词典有冲突,导致内存溢出,闪退。
  • 4. 示例:创建带约束的随机地址生成器(范围0x1000-0xFFFF)
  • VSCode轻松调试运行C#控制台程序