python学习记录(四)【七段数码管】

import turtle, time

def draw(f):#绘制数字
    turtle.width(5)
    turtle.seth(0)
    turtle.pu()
    turtle.fd(25)
    if(f in [2,3,4,5,6,8,9]):
        turtle.pd()
    else:
        turtle.pu()
    turtle.fd(25)
    turtle.pu()
    turtle.fd(5)
    turtle.right(90)
    
    turtle.pu()
    turtle.fd(5)
    if(f in [0,1,3,4,5,6,7,8,9]):
        turtle.pd()
    else:
        turtle.pu()
    turtle.fd(25)
    turtle.pu()
    turtle.fd(5)
    turtle.right(90)
    
    turtle.pu()
    turtle.fd(5)
    if(f in [0,2,3,5,6,8,9]):
        turtle.pd()
    else:
        turtle.pu()
    turtle.fd(25)
    turtle.pu()
    turtle.fd(5)
    turtle.right(90)
    
    turtle.pu()
    turtle.fd(5)
    if(f in [0,2,6,8]):
        turtle.pd()
    else:
        turtle.pu()
    turtle.fd(25)
    turtle.pu()
    turtle.fd(5)
    turtle.right(90)
    
    turtle.seth(90)
    
    turtle.pu()
    turtle.fd(5)
    if(f in [0,4,5,6,8,9]):
        turtle.pd()
    else:
        turtle.pu()
    turtle.fd(25)
    turtle.pu()
    turtle.fd(5)
    turtle.right(90)
    
    turtle.pu()
    turtle.fd(5)
    if(f in [0,2,3,5,6,7,8,9]):
        turtle.pd()
    else:
        turtle.pu()
    turtle.fd(25)
    turtle.pu()
    turtle.fd(5)
    turtle.right(90)
    
    turtle.pu()
    turtle.fd(5)
    if(f in [0,1,2,3,4,7,8,9]):
        turtle.pd()
    else:
        turtle.pu()
    turtle.fd(25)
    turtle.pu()
    turtle.fd(5)
    turtle.right(90)
    
turtle.pu()
turtle.goto(-300,100)
# t=time.gmtime(8)
t=time.localtime(time.time())#获取当前时间
s=time.strftime("%Y+%m-%d*%H?%M:%S;",t)
turtle.color("maroon4")
for ch in s:
    if(ch == '+'):
        turtle.seth(0)
        turtle.pu()
        turtle.fd(20)
        turtle.color("black")
        turtle.write('年',font=("Arial", 18, "normal"))
        turtle.pu()
        turtle.fd(20)
        turtle.color("maroon4")
    elif(ch == '-'):
        turtle.seth(0)
        turtle.pu()
        turtle.fd(20)
        turtle.color("black")
        turtle.write('月',font=("Arial", 18, "normal"))
        turtle.color("maroon4")
        turtle.pu()
        turtle.fd(20)
    elif(ch == '*'):
        turtle.seth(0)
        turtle.pu()
        turtle.fd(20)
        turtle.color("black")
        turtle.write('日',font=("Arial", 18, "normal"))
        turtle.color("maroon4")
        turtle.pu()
        turtle.fd(40)
        turtle.pu()
        turtle.goto(-250,-100)
    elif(ch == '?'):
        turtle.seth(0)
        turtle.pu()
        turtle.fd(20)
        turtle.color("black")
        turtle.write('时',font=("Arial", 18, "normal"))
        turtle.color("maroon4")
        turtle.pu()
        turtle.fd(20)
    elif(ch == ':'):
        turtle.seth(0)
        turtle.pu()
        turtle.fd(20)
        turtle.color("black")
        turtle.write('分',font=("Arial", 18, "normal"))
        turtle.color("maroon4")
        turtle.pu()
        turtle.fd(20)
    elif(ch == ';'):
        turtle.seth(0)
        turtle.pu()
        turtle.fd(20)
        turtle.color("black")
        turtle.write('秒',font=("Arial", 18, "normal"))
        turtle.pu()
        turtle.fd(20)
    else:
        draw(eval(ch))

代码写的是真的好丑

运行结果
在这里插入图片描述

要在七段数码管上显示文字,需要一个七段数码管模块,以及一个能够控制该模块的开发板或者单片机。 以下是一个基于树莓派和七段数码管模块的Python代码示例: ```python import RPi.GPIO as GPIO import time # 定义GPIO引脚连接方式 GPIO.setmode(GPIO.BOARD) # 定义七段数码管引脚连接,具体连接方式请参考模块说明书 segments = (11, 12, 13, 15, 16, 18, 22) digits = (19, 21, 23, 24) # 定义每个数字在七段数码管上的编码 numbers = { ' ': (0, 0, 0, 0, 0, 0, 0), '0': (1, 1, 1, 1, 1, 1, 0), '1': (0, 1, 1, 0, 0, 0, 0), '2': (1, 1, 0, 1, 1, 0, 1), '3': (1, 1, 1, 1, 0, 0, 1), '4': (0, 1, 1, 0, 0, 1, 1), '5': (1, 0, 1, 1, 0, 1, 1), '6': (1, 0, 1, 1, 1, 1, 1), '7': (1, 1, 1, 0, 0, 0, 0), '8': (1, 1, 1, 1, 1, 1, 1), '9': (1, 1, 1, 1, 0, 1, 1) } # 初始化七段数码管引脚 for segment in segments: GPIO.setup(segment, GPIO.OUT) GPIO.output(segment, 0) for digit in digits: GPIO.setup(digit, GPIO.OUT) GPIO.output(digit, 1) try: while True: # 在七段数码管上显示Hello World! for digit in range(4): GPIO.output(digits[digit], 0) for segment in range(7): GPIO.output(segments[segment], numbers['H'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['e'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['l'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['l'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['o'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers[' '][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['W'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['o'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['r'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['l'][segment]) time.sleep(0.001) for segment in range(7): GPIO.output(segments[segment], numbers['d'][segment]) time.sleep(0.001) GPIO.output(digits[digit], 1) except KeyboardInterrupt: GPIO.cleanup() ``` 该代码使用了一个字典来存储每个数字在七段数码管上的编码,然后通过循环将字符串中的每个字符转换成七段数码管上的数字,并在不同的数码管上显示。注意在每次循环中需要依次控制不同的数码管显示,以达到动态显示的效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值