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 turtle


def 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库的其他功能,创作出更复杂、更精美的图形。

python 复制代码
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)
python 复制代码
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)
相关推荐
橘猫云计算机设计几秒前
基于django优秀少儿图书推荐网(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·小程序·django·毕业设计
爱泡脚的鸡腿1 分钟前
HTML CSS 第二次笔记
前端·css
互联网杂货铺7 分钟前
如何用Postman实现自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
予安灵14 分钟前
一文详细讲解Python(详细版一篇学会Python基础和网络安全)
开发语言·python
灯火不休ᝰ17 分钟前
前端处理pdf文件流,展示pdf
前端·pdf
智践行18 分钟前
Trae开发实战之转盘小程序
前端·trae
最新资讯动态24 分钟前
DialogHub上线OpenHarmony开源社区,高效开发鸿蒙应用弹窗
前端
淬渊阁25 分钟前
汇编学习之《扩展指令指针寄存器》
汇编·学习
lalapanda27 分钟前
UE5学习记录part12
学习·ue5
lvbb6634 分钟前
框架修改思路
前端·javascript·vue.js