现要求使用Python语言编写函数实现十进制至十六进制的转换,并绘制数码管将十进制及其对应的十六进制显示出来。
输入:
9999
输出:
用Python实现十至十六进制的转换,并绘制七段数码管显示出来。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 我帮你写了一版,供你参考。
import turtle t = turtle.Turtle() CHAR_MAP = { '0': 0b0111111, '1': 0b0000110, '2': 0b1011011, '3': 0b1001111, '4': 0b1100110, '5': 0b1101101, '6': 0b1111101, '7': 0b0000111, '8': 0b1111111, '9': 0b1101111, 'a': 0b1110111, 'b': 0b1111100, 'c': 0b0111001, 'd': 0b1011110, 'e': 0b1111001, 'f': 0b1110001, 'h': 0b1110110, } def draw_digit(c): char = CHAR_MAP[c] for i in range(7): b = char & 0b0000001 t.penup() t.forward(5) if b: t.pendown() else: t.penup() t.forward(25) t.penup() t.forward(5) if i == 5: t.penup() t.backward(35) if i in [0, 2, 3, 5]: t.right(90) char = char >> 1 def draw_number(s): for c in s: draw_digit(c) t.penup() t.left(90) t.forward(35) t.right(90) t.forward(10) def draw(x, y, label, num_str, postfix, postfix_color): t.penup() t.goto(x, y) t.color("black") t.pendown() t.write(label, move=False, align='right', font=('宋体', 12, 'normal')) t.penup() t.goto(x, y + 40) draw_number(num_str) t.color(postfix_color) draw_digit(postfix) def main(dec_str): hex_str = str(hex(eval(dec_str))) draw(-250, 260, "十进制:", dec_str, 'b', 'red') draw(-250, 160, "十六进制:", hex_str[2:], 'h', 'green') if __name__ == "__main__": t.speed(0) t.pensize(5) t.hideturtle() n = input() main(n) turtle.done()
运行效果图:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用
悬赏问题
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)