问题遇到的现象和发生背景
用python代码显示汉字
用代码块功能插入代码,请勿粘贴截图
import os
import struct
import time
def GetHZOffset(HZ):
GB=HZ.encode("gbk")
#GBVal=struct.unpack("BB",GB)
return ((GB[0]-0xa1)*94+GB[1]-0xa1)*32
def GetHZArray(In,HZ,HZArray):
Offset=GetHZOffset(HZ)
In.seek(Offset,0)
HZInfo=In.read(32)
HZValue=struct.unpack("32B",HZInfo)
No=0
HZArray.append([])
for i in range(32):
for j in range(8):
if ((0x80>>j) & HZValue[i] ) == 0:
HZArray[No].append(" ")
else:
HZArray[No].append("*")
if i%2 == 1:
No=No+1
HZArray.append([])
def Append(HZsArrayLine,HZArrayLine):
HZsArrayLine.append(" ")
for i in range(16):
HZsArrayLine.append(HZArrayLine[i])
def Add2HZsArray(HZArray,HZsArray):
for i in range(16):
Append(HZsArray[i],HZArray[i])
def SetHZsArray(HZs,HZLib,HZsArray):
In=open(HZLib,"rb")
for HZ in HZs:
HZArray=[]
GetHZArray(In,HZ,HZArray)
Add2HZsArray(HZArray,HZsArray)
In.close()
def Display(HZsArray):
i=0
while(1):
time.sleep(1)
os.system("cls")
for k in range(16):
for j in range(i,len(HZsArray[0])):
print(HZsArray[k][j],end="")
for j in range(0,i):
print(HZsArray[k][j],end="")
print("")
if i == len(HZsArray[0]):
i=0
else:
i=i+1
def ShowHZs(HZs,HZLib):
HZsArray=[]
for i in range(16):
HZ=[]
HZsArray.append(HZ)
SetHZsArray(HZs,HZLib,HZsArray)
Display(HZsArray)
HZs="大家好"
HZLib="hzk.dat"
ShowHZs(HZs,HZLib)
运行结果及报错内容
现在可以实现横向循环显示,无报错。
我的解答思路和尝试过的方法
修改循环方式也没有成功
我想要达到的结果
想问一下大家,怎么修改,才能让他整体汉字竖向循环显示?期待大家的回复。