使用提供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()
打印出来的效果如下: