打印数字点阵字模

使用提供0-9数字点阵字模,编写显示字模函数,并实现把字模镜像、倒影、斜体等特显。

按行输出自己的学号、生日,并保持到文件“我的信息.txt”中。

参考:下面的二维数组定义了10个数字的字模

char ps[10][8]={

    {0x00,0x18,0x24,0x24,0x24,0x24,0x24,0x18}, //0

    {0x00,0x18,0x1c,0x18,0x18,0x18,0x18,0x18}, //1

    {0x00,0x1e,0x30,0x30,0x1c,0x06,0x06,0x3e}, //2

    {0x00,0x1e,0x30,0x30,0x1c,0x30,0x30,0x1e}, //3

    {0x00,0x30,0x38,0x34,0x32,0x3e,0x30,0x30}, //4

    {0x00,0x1e,0x02,0x1e,0x30,0x30,0x30,0x1e}, //5

    {0x00,0x1c,0x06,0x1e,0x36,0x36,0x36,0x1c}, //6

    {0x00,0x3f,0x30,0x18,0x18,0x0c,0x0c,0x0c}, //7

    {0x00,0x1c,0x36,0x36,0x1c,0x36,0x36,0x1c}, //8

    {0x00,0x1c,0x36,0x36,0x36,0x3c,0x30,0x1c}, //9

};

python代码如下:

list0 = [0x00,0x18,0x24,0x24,0x24,0x24,0x24,0x18]
list1 = [0x00,0x18,0x1c,0x18,0x18,0x18,0x18,0x18]
list2 = [0x00,0x1e,0x30,0x30,0x1c,0x06,0x06,0x3e]
list3 = [0x00,0x1e,0x30,0x30,0x1c,0x30,0x30,0x1e]
list4 = [0x00,0x30,0x38,0x34,0x32,0x3e,0x30,0x30]
list5 = [0x00,0x1e,0x02,0x1e,0x30,0x30,0x30,0x1e]
list6 = [0x00,0x1c,0x06,0x1e,0x36,0x36,0x36,0x1c]
list7 = [0x00,0x3f,0x30,0x18,0x18,0x0c,0x0c,0x0c]
list8 = [0x00,0x1c,0x36,0x36,0x1c,0x36,0x36,0x1c]
list9 = [0x00,0x1c,0x36,0x36,0x36,0x3c,0x30,0x1c]

dp = {'0':list0, '1':list1, '2':list2, '3':list3, '4':list4, '5':list5, '6':list6, '7':list7, '8':list8, '9':list9}

str1 = [list2,list0,list2,list0,list1,list1,list8,list2,list0,list4]
str2 = [list2,list0,list0,list2,list0,list2,list1,list4]

for j in range(0,10):                                   # 十六进制转8位二进制
    temp = dp[str(j)]
    for i in range(len(temp)):
        temp[i] = '{:08b}'.format(temp[i])


def jingxiang():                                        # 8位二进制转列表
    for j in range(0,10):
        temp = dp[str(j)]
        lista = []
        for row in temp:
            list = []
            for i in range(len(row)):
                list.append(row[i])
            lista.append(list)
            for k in range(len(lista)):
                temp[k] = lista[k]
    print(list2)


def zhengchang():
    for j in range(0,10):
        temp = dp[str(j)]
        lista = []
        for row in temp:
            list = []
            for i in range(7,0,-1):
                list.append(row[i])
            lista.append(list)
            for k in range(len(lista)):
                temp[k] = lista[k]
    print(list0)


str1 = [list0,list2,list0,list1,list1,list8,list2,list0,list4]
str2 = [list0,list0,list2,list0,list2,list1,list4]

def shuchu(str):
    # p[0].append(str1[0][0][0])                        实验乱序
    # print(p)
    # print(len(p[1]))
    #
    #
    # p1 = list2[0]
    # print(p1)
    #
    # for k in range(9):
    #     for i in range(8):
    #         p1.append(str1[k][0][i])
    # print(p1)
    p = list2                                               # 第一个都是2,便把2赋值给p
    for i in range(8):
        for j in range(len(str)):
            for k in range(7):
                p[i].append(str[j][i][k])

    print(p)
    return p

def xieti(p):                                                # 斜体,单行斜体,双行不斜体,更加美观
    for i in range(8):
        for j in range(i):
            if j%2==0:
                p[i].insert(0,'0')


def dayin(p):                                                #打印并且存入txt文件里
    f = open('我的信息','a')
    for row in p:
        f.write('\n')
        for i in row:
            if i == '1':
                # 前景字符(即用来表示汉字笔画的输出字符)
                f.write("1")
                print('1', end=' ')
            else:
                f.write(" ")
                # 背景字符(即用来表示背景的输出字符)
                print(' ', end=' ')
        print()
    f.close()

def daoying(p):                                         #倒影,将p倒序便是倒影
    p.reverse()
    f = open('我的信息', 'a')
    for row in p:
        f.write('\n')
        for i in row:
            if i == '1':
                f.write("1")
                # 前景字符(即用来表示汉字笔画的输出字符)
                print('1', end=' ')
            else:
                f.write(" ")
                # 背景字符(即用来表示背景的输出字符)
                print(' ', end=' ')
        print()


if __name__ == '__main__':
    f = open('我的信息', 'a',encoding='UTF-8')
    f.write('\n我的学号\n')                                   # 由于将list2的赋给了p。导致只能一个一个试
    zhengchang()
    p = shuchu(str1)
    dayin(p)

    # f.write('\n学号镜像\n')
    # jingxiang()
    # p = shuchu(str1)
    # dayin(p)
    #
    # f.write('\n学号倒影\n')
    # zhengchang()
    # p = shuchu(str1)
    # daoying(p)
    #
    # f.write('\n学号斜体\n')
    # zhengchang()
    # p = shuchu(str1)
    # xieti(p)
    # dayin(p)
    #
    # f.write('\n我的生日\n:')
    # zhengchang()
    # p = shuchu(str2)
    # dayin(p)
    #
    # f.write('\n生日镜像\n')
    # jingxiang()
    # p = shuchu(str2)
    # dayin(p)
    #
    # f.write('\n生日倒影\n')
    # zhengchang()
    # p = shuchu(str2)
    # daoying(p)
    #
    # f.write('\n生日斜体\n')
    # zhengchang()
    # p = shuchu(str2)
    # xieti(p)
    # dayin(p)
    # f.close()


# for row in list4:
#     for i in row:
#         if i == '1':
#             # 前景字符(即用来表示汉字笔画的输出字符)
#             print('1', end=' ')
#         else:
#
#             # 背景字符(即用来表示背景的输出字符)
#             print(' ', end=' ')
#     print()

打印出来的效果如下:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值