模拟电梯数码管显示编程。 假设你要乘坐电梯,假设只有一部电梯,其显示面板上有七段数码管显示电梯当前所在楼层。假设你的学号为 M,且第(M%7+1)段数码管坏了 (一直是亮的)。问题:你现在在 1楼,电梯停在M 楼,你要去N楼,(M与N均小于等于9)请模拟你按了电梯后,到你到达N 楼这个过程中,显示面板上七段数码管的显示过程(假设这期间没有其他人按电梯)。用Python完成
时间: 2024-03-05 15:53:45 浏览: 21
好的,我理解了你的问题。以下是Python代码:
```
# 定义数码管的显示字典
digit_dict = {
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]
}
# 定义函数,将数字转换为数码管显示
def digit_display(num):
digit_list = []
for i in str(num):
digit_list.append(digit_dict[int(i)])
return digit_list
# 定义函数,打印数码管显示
def print_digit_display(digit_list):
for i in range(7):
for j in range(len(digit_list)):
if digit_list[j][i] == 1:
print("*", end="")
else:
print(" ", end="")
print()
# 输入M和N
M = int(input("请输入您的学号 M: "))
N = int(input("请输入您要去的楼层 N: "))
# 模拟电梯运行过程
current_floor = 1
while current_floor != N:
print("当前楼层:", current_floor)
digit_list = digit_display(current_floor)
digit_list[M % 7] = [1, 0, 1, 1, 1, 1, 1] # 将坏掉的数码管显示为 "E"
print_digit_display(digit_list)
if current_floor < N:
current_floor += 1
else:
current_floor -= 1
# 到达目的地后的显示
print("当前楼层:", current_floor)
digit_list = digit_display(current_floor)
digit_list[M % 7] = [1, 0, 1, 1, 1, 1, 1] # 将坏掉的数码管显示为 "E"
print_digit_display(digit_list)
print("到达", N, "楼")
```
运行程序后,按照提示输入你的学号 M 和目的地楼层 N,即可看到数码管的显示过程。其中,坏掉的数码管会显示为 "E"。