几个有趣的Python脚本

参考,若侵删

https://www.cnblogs.com/lyck/p/13958961.html
https://www.cnblogs.com/mulin1999/p/11495241.html
https://juejin.im/post/5be834286fb9a049e3079de7

Turtle
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一只小乌龟,在一个横轴为x、纵轴为y的坐标系内,从原点(0,0)位置开始,它根据一组函数指令,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

Turtle函数
操纵海龟绘图有着许多的函数,这些函数可以划分为3种:一种为画笔控制函数,一种为运动控制函数,还有一种是方向控制函数。

太阳花

from turtle import *
color('red', 'yellow')
begin_fill()
while True:
    forward(200)
    left(170)
    if abs(pos()) < 1:
        break
end_fill()
done()

在这里插入图片描述

六芒星1

import turtle as t

# size传入最大的圆的半径
def draw_Star(size):
    t.setup(1200, 1000)
    t.speed(11)
    t.pensize(2)
    t.pencolor('grey')
    for r, pen_size in [(size//7, 3), (size*6//7, 4), (size, 4)]:
        t.penup()
        t.goto(0, -r)
        t.pendown()
        t.pensize(pen_size)
        t.circle(r)
        t.penup()
        t.goto(0, 0)
    r = size * 5.5 // 7
    for i in range(6):
        t.pendown()
        t.pensize(3)
        t.seth(i * 60 + 30)
        t.fd(r)
        t.goto(0, 0)
    t.goto(0, r)
    t.seth(-150)
    t.pensize(5)
    for i in range(6):
        t.fd(r)
        t.left(60)
    r = r - size // 50
    t.goto(0, r)
    t.pensize(10)
    t.seth(-120)
    t.pencolor('orange')
    for i in range(3):
        t.fd(r * (3**0.5))
        t.left(120)
    t.penup()
    t.goto(0, 0)
    t.seth(30)
    t.fd(r)
    t.seth(-180)
    t.pendown()
    for i in range(3):
        t.fd(r * (3 ** 0.5))
        t.left(120)
    t.hideturtle()
    t.done()

draw_Star(400)

在这里插入图片描述

六芒星2

import turtle  #引入一个绘图库
import math  #因为后面用到了根号,所以引入了math库
turtle.setup(650,350,200,200)  #确定画布的大小和位置
turtle.penup()  #提起画笔
turtle.pendown()  #放下画笔
turtle.pensize(7)  #设置画笔的粗细
turtle.pencolor("gold")  #设置画笔颜色
turtle.fillcolor('#33cc8c')  #设置填充颜色
turtle.seth(30)  #设置画笔绘制方向,参数值为直角坐标的角度
turtle.begin_fill()  #准备开始填充图形
turtle.fd(200)  #向指定方向直行
turtle.seth(-90)  #改变画笔绘制方向
turtle.fd(200)
turtle.seth(150)
turtle.fd(200)
turtle.seth(270)
turtle.circle(math.sqrt(3)*200/3,420)  #画圆,前一个参数是圆的半径,后一个参数是要画的角度
turtle.seth(90)
turtle.fd(200)
turtle.seth(-30)
turtle.fd(200)
turtle.seth(210)
turtle.fd(200)
turtle.end_fill()  #结束填充颜色
turtle.done()  #停止画笔绘制,使绘画窗口不关闭

在这里插入图片描述

浪形圈

import turtle#引入一个绘图库
turtle.setup(650,350,100,200)  #确定画布的大小和位置
for i in range(180):  #循环180遍一下操作
    turtle.home()  #让画笔返回初始位置
    turtle.penup()  #提起画笔
    turtle.pendown()  #放下画笔
    turtle.speed(50)  #设置绘画速度
    turtle.hideturtle()  #绘画时隐藏画笔
    turtle.pensize(0.5)  #设置画笔的粗细
    turtle.pencolor("gold")  #设置画笔颜色
    turtle.seth(i*2)  #设置画笔绘制方向,参数值为直角坐标的角度
    for j in range(5):
        turtle.circle(10,80)  #画圆,前一个参数是圆的半径,后一个参数是要画的角度
        turtle.circle(-10,80)
    turtle.penup()
turtle.done()  #停止画笔绘制,使绘画窗口不关闭

在这里插入图片描述

单身狗

import turtle as t
t.screensize(500, 500)
# 【头部轮廓】
t.pensize(5)
t.home()
t.seth(0)
t.pd()  #pendown
t.color('black')
t.circle(20, 80)  # 0
t.circle(200, 30)  # 1
t.circle(30, 60)  # 2
t.circle(200, 29.5)  # 3
t.color('black')
t.circle(20, 60)  # 4
t.circle(-150, 22)  # 5
t.circle(-50, 10)  # 6
t.circle(50, 70)  # 7
# 确定鼻头大概位置 t.xcor和t.ycor乌龟一开始的位置
x_nose = t.xcor()
y_nose = t.ycor()
t.circle(30, 62)  # 8
t.circle(200, 15)  # 9
# 【鼻子】
t.pu() #penup
t.goto(x_nose, y_nose + 25)
t.seth(90)
t.pd()
t.begin_fill()
t.circle(8)
t.end_fill()
# 【眼睛】
t.pu()
t.goto(x_nose + 48, y_nose + 55)
t.seth(90)
t.pd()
t.begin_fill()
t.circle(8)
t.end_fill()
# 【耳朵】
t.pu()
t.color('#444444')
t.goto(x_nose + 100, y_nose + 110)
t.seth(182)
t.pd()
t.circle(15, 45)
t.color('black')
t.circle(10, 15) 
t.circle(90, 70) 
t.circle(25, 110) 
t.rt(4)
t.circle(90, 70) 
t.circle(10, 15) 
t.color('#444444')
t.circle(15, 45)
# 【身体】
t.pu()
t.color('black')
t.goto(x_nose + 90, y_nose - 30)
t.seth(-130)
t.pd()
t.circle(250, 28) 
t.circle(10, 140) 
t.circle(-250, 25) 
t.circle(-200, 25) 
t.circle(-50, 85) 
t.circle(8, 145) 
t.circle(90, 45)
t.circle(550, 5) 
# 【尾巴】
t.seth(0)
t.circle(60, 85)
t.circle(40, 65)
t.circle(40, 60) 
t.lt(150)  #left
t.circle(-40, 90) 
t.circle(-25, 100) 
t.lt(5)
t.fd(20)
t.circle(10, 60) 
# 【背部】
t.rt(80)  #right
t.circle(200, 35)
# 【项圈】
t.pensize(20)
t.color('#F03C3F')
t.lt(10)
t.circle(-200, 25) 
# 【爱心铃铛】
t.pu()
t.fd(18)
t.lt(90)
t.fd(18)
t.pensize(6)
t.seth(35)  #setheading
t.color('#FDAF17')
t.begin_fill()
t.lt(135)
t.fd(6)
t.right(180)  # 画笔掉头
t.circle(6, -180)
t.backward(8)
t.right(90)
t.forward(6)
t.circle(-6, 180)
t.fd(15)
t.end_fill()
# 【前小腿】
t.pensize(5)
t.pu()
t.color('black')
t.goto(x_nose + 100, y_nose - 125)
t.pd()
t.seth(-50)
t.fd(25)
t.circle(10, 150)
t.fd(25)
# 【后小腿】
t.pensize(4)
t.pu()
t.goto(x_nose + 314, y_nose - 125)
t.pd()
t.seth(-95)
t.fd(25)
t.circle(-5, 150)
t.fd(2)
t.hideturtle()
t.done()

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值