用Python 七段数码管绘制编写程序实现:“***的生日是**年**月**日“的输出。
时间: 2023-08-29 20:10:26 浏览: 81
可以使用Python的turtle库来绘制七段数码管,并结合字符串格式化输出生日信息。以下是代码示例:
```python
import turtle
# 定义七段数码管的线段绘制函数
def drawLine(draw):
if draw:
turtle.pendown()
else:
turtle.penup()
turtle.fd(40)
turtle.right(90)
# 绘制数字0
def drawDigit0():
drawLine(True)
for i in range(1, 7):
if i == 3:
drawLine(False)
else:
drawLine(True)
drawLine(False)
# 绘制数字1
def drawDigit1():
turtle.penup()
turtle.right(90)
turtle.fd(40)
turtle.right(180)
turtle.pendown()
turtle.fd(40)
turtle.right(90)
turtle.fd(40)
turtle.right(90)
turtle.fd(40)
turtle.right(90)
turtle.fd(40)
turtle.penup()
# 绘制数字2
def drawDigit2():
drawLine(True)
drawLine(True)
drawLine(True)
drawLine(False)
drawLine(True)
drawLine(True)
drawLine(False)
# 绘制数字3
def drawDigit3():
drawLine(True)
drawLine(True)
drawLine(True)
drawLine(False)
drawLine(True)
drawLine(True)
drawLine(False)
# 绘制数字4
def drawDigit4():
turtle.right(90)
turtle.penup()
turtle.fd(40)
turtle.right(180)
turtle.pendown()
turtle.fd(40)
turtle.right(90)
turtle.fd(40)
turtle.right(90)
turtle.fd(40)
turtle.penup()
turtle.right(180)
turtle.fd(80)
turtle.right(90)
# 绘制数字5
def drawDigit5():
drawLine(False)
drawLine(True)
drawLine(True)
drawLine(True)
drawLine(False)
drawLine(True)
drawLine(True)
# 绘制数字6
def drawDigit6():
drawLine(False)
drawLine(True)
drawLine(True)
drawLine(True)
drawLine(False)
drawLine(True)
drawLine(False)
# 绘制数字7
def drawDigit7():
turtle.right(90)
turtle.penup()
turtle.fd(40)
turtle.right(180)
turtle.pendown()
turtle.fd(40)
turtle.right(90)
turtle.fd(40)
turtle.penup()
turtle.right(180)
turtle.fd(80)
turtle.right(90)
# 绘制数字8
def drawDigit8():
drawLine(True)
drawLine(True)
drawLine(True)
drawLine(False)
drawLine(True)
drawLine(True)
drawLine(False)
# 绘制数字9
def drawDigit9():
drawLine(True)
drawLine(True)
drawLine(True)
drawLine(False)
drawLine(True)
drawLine(False)
drawLine(False)
# 定义绘制生日数字的函数
def drawDate(date):
for i in date:
if i == '0':
drawDigit0()
elif i == '1':
drawDigit1()
elif i == '2':
drawDigit2()
elif i == '3':
drawDigit3()
elif i == '4':
drawDigit4()
elif i == '5':
drawDigit5()
elif i == '6':
drawDigit6()
elif i == '7':
drawDigit7()
elif i == '8':
drawDigit8()
elif i == '9':
drawDigit9()
else:
print("Invalid input!")
# 初始化turtle画布
turtle.setup(800, 400)
turtle.penup()
turtle.fd(-300)
turtle.pensize(5)
# 绘制生日信息
birthday = "2022-11-11"
turtle.write("{} 的生日是".format("张三"), font=("Arial", 18, "normal"))
turtle.fd(180)
drawDate(birthday[:4])
turtle.write("年", font=("Arial", 18, "normal"))
turtle.fd(50)
drawDate(birthday[5:7])
turtle.write("月", font=("Arial", 18, "normal"))
turtle.fd(50)
drawDate(birthday[8:])
turtle.write("日", font=("Arial", 18, "normal"))
turtle.hideturtle()
turtle.done()
```
运行程序后,将会在画布上绘制出“张三的生日是2022年11月11日”的七段数码管效果。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)