Python基础(4)turtle蟒蛇绘制 七段数码管绘制

蟒蛇绘制

print('hello,嘿\n')# vfvgbgv
"""图形绘制turtle"""

import turtle# 绘图库(海龟)
turtle.setup(650,350,200,200)
# 此时海龟在窗体正中心
# 绘图窗体,单位是像素
# turtle.setup(width, height, startx, starty)
# width, height是绘图窗体宽高
# startx, starty可省略(正中心),是窗口左上角在屏幕的位置,屏幕左上为(0,0)
turtle.penup()#抬起画笔(抬起画笔后移动画笔将不会留下图案)
turtle.fd(-250)#画笔向前移动距离,向后为bk
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("magenta")
turtle.seth(-40)
# 海龟转向至绝对坐标的-40°方向(绝对坐标右侧为0°)
# 改变运动的方向不行进
# turle.left/right(°)往当前方向左/右面改变方向
for i in range (4):#前四次波浪,range(4)表示0,1,2,3
    turtle.circle(40,80)
    # 逆时针画半径为40的圆80°角
    # 默认圆心位置在海龟左侧,半径为负数代表在右侧
    turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)#turtle.forward()
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()#若用turtle.end则会在画图后自动关闭窗口

改进

☆将 import turtle 改成 from turtle import *
可将代码中所有 turtle. 省略,但容易造成函数名的重复
★将 import turtle 改成 import turtle as t 可将库名改为 t,既简洁又不会重复

七段数码管绘制

在这里插入图片描述

import turtle
def drawline(draw):
    # 绘制单线段
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    turtle.right(90)
def drawdigit(digit):
    # 根据数字绘制数码管
    drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False)
    drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,2,6,8] else drawline(False)
    # 右转四次
    turtle.left(90)
    # 四次后方向由向右变为向上
    drawline(True) if digit in [0,4,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False)
    drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False)
    # 右转三次
    turtle.left(180)
    # 三次后方向由向左变为向右
    turtle.penup()
    turtle.fd(40)

def drawdate(date):
    # 将日期中每个数字输出成数字管
    for i in date:
        drawdigit(eval(i))

def main():
    date = input("请输入日期:")
    turtle.setup(800,350,200,200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(15)
    drawdate(date)
    turtle.hideturtle()
    turtle.done()

main()

注意 True 和 False 一定要首字母大写!!!!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用turtle库中的函数来绘制七段数码管形式。以下是一个示例代码: ``` import turtle # 定义绘制线段的函数 def draw_line(length): turtle.pendown() turtle.forward(length) turtle.penup() # 定义绘制数字0的函数 def draw_0(): draw_line(50) turtle.right(90) draw_line(100) turtle.right(90) draw_line(50) turtle.right(90) draw_line(100) turtle.penup() # 定义绘制数字1的函数 def draw_1(): turtle.right(90) draw_line(100) turtle.penup() turtle.right(180) turtle.forward(50) turtle.right(90) turtle.forward(100) turtle.right(180) # 定义绘制数字2的函数 def draw_2(): draw_line(50) turtle.right(90) draw_line(50) turtle.right(45) draw_line(70.7) turtle.left(135) draw_line(50) turtle.penup() turtle.left(90) turtle.forward(50) turtle.right(90) # 定义绘制数字3的函数 def draw_3(): draw_line(50) turtle.right(135) draw_line(70.7) turtle.left(135) draw_line(50) turtle.right(135) draw_line(70.7) turtle.penup() # 定义绘制数字4的函数 def draw_4(): turtle.right(90) draw_line(50) turtle.left(90) draw_line(50) turtle.right(90) draw_line(50) turtle.right(180) draw_line(100) turtle.penup() turtle.right(90) turtle.forward(50) turtle.right(90) # 定义绘制数字5的函数 def draw_5(): turtle.right(90) draw_line(50) turtle.left(90) draw_line(50) turtle.left(45) draw_line(70.7) turtle.right(135) draw_line(50) turtle.penup() turtle.right(90) turtle.forward(50) turtle.right(90) # 定义绘制数字6的函数 def draw_6(): draw_line(50) turtle.left(90) draw_line(100) turtle.right(90) draw_line(50) turtle.right(90) draw_line(50) turtle.right(90) draw_line(50) turtle.penup() turtle.right(90) turtle.forward(50) turtle.right(90) # 定义绘制数字7的函数 def draw_7(): turtle.right(90) draw_line(100) turtle.left(135) draw_line(70.7) turtle.penup() turtle.right(45) turtle.forward(50) turtle.right(90) # 定义绘制数字8的函数 def draw_8(): draw_line(50) turtle.right(90) draw_line(100) turtle.right(90) draw_line(50) turtle.right(90) draw_line(100) turtle.penup() turtle.right(90) turtle.forward(50) turtle.right(90) # 定义绘制数字9的函数 def draw_9(): draw_line(50) turtle.right(90) draw_line(50) turtle.right(90) draw_line(50) turtle.right(90) draw_line(100) turtle.penup() turtle.right(90) turtle.forward(50) turtle.right(90) # 设置初始位置和角度 turtle.penup() turtle.goto(-200, 0) turtle.setheading(0) # 绘制数字7段数码管 draw_1() turtle.forward(100) draw_2() turtle.forward(100) draw_3() turtle.goto(-200, -150) draw_4() turtle.forward(100) draw_5() turtle.forward(100) draw_6() turtle.goto(-200, -300) draw_7() turtle.forward(100) draw_8() turtle.forward(100) draw_9() # 隐藏海龟 turtle.hideturtle() # 显示窗口 turtle.mainloop() ``` 在上面的代码中,我们定义了绘制线段的函数和绘制数字0到9的函数。然后,我们使用这些函数来绘制数字7段数码管。最后,我们隐藏了海龟,并使用`mainloop`函数来显示窗口。运行代码后,可以看到绘制七段数码管形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值