Python:使用ascii代码打印
我是python的初学者,在这个程序中遇到了一个问题: 首先是节点列表:Python:使用ascii代码打印,python,python-3.x,ascii,Python,Python 3.x,Ascii,我是python的初学者,在这个程序中遇到了一个问题: 首先是节点列表: class Node: def __init__(self,initdata): self.data = initdata self.next = None def getData(self): return self.data def getNext(self): return self.next def setData
class Node:
def __init__(self,initdata):
self.data = initdata
self.next = None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self,newdata):
self.data = newdata
def setNext(self,newnext):
self.next = newnext
我的问题在这个程序中:(打印)
每次我打印的时候,线条看起来都不清晰。我尝试使用len()进行实验,只是为了使其准确,但每次该项添加更多字符时,它都会再次消失。任何帮助都将不胜感激。谢谢。在空闲设置中使用单空格字体,你们都很好。在空闲设置中使用单空格字体,你们都很好。使用单空格字体作为@Kable答案 除此之外,最后一个
print
print小于chr(0x2500)
其他一些注意事项:
- 使用
代替\u2502
chr(0x2502)
- 将转储功能与
分开pushSLL
class StackLL:
定义初始化(自):
self.head=无
def pushSLL(自身,项目):
临时=节点(str(项目))
温度设置下一步(自身头部)
self.head=temp
def转储(自):
如果self.head为0,则length=max(self.allNodes()中节点的len(node.data)
打印('\u2510{}\u250c'.格式(''*length))
对于self.allNodes()中的节点:
打印('\u2502{:使用单空格字体@Kable)
除此之外,最后一个print
print小于chr(0x2500)
其他一些注意事项:
- 使用
\u2502
代替chr(0x2502)
- 将转储功能与
pushSLL
分开
- 第一个和最后一个打印只考虑当前节点的长度。它应该计算所有节点的最大长度。
class StackLL:
定义初始化(自):
self.head=无
def pushSLL(自身,项目):
临时=节点(str(项目))
温度设置下一步(自身头部)
self.head=temp
def转储(自):
如果self.head为0,则length=max(self.allNodes()中节点的len(node.data)
打印('\u2510{}\u250c'.格式(''*length))
对于self.allNodes()中的节点:
打印('\u2502{:从您的图片来看,无论您有什么GUI,似乎都使用了。您很难通过添加空格来调整字符串的宽度。请使用单间隔字体。从您的图片来看,无论您有什么GUI,似乎都使用了。您很难通过添加空格来调整字符串的宽度。请使用单间隔字体。
from NodeList import Node
class StackLL:
def __init__(self):
self.head = None
def pushSLL(self,item):
temp = Node(str(item))
temp.setNext(self.head)
self.head = temp
node = self.head
print(chr(0x2510)+(chr(0x0000)*(len(item)))+chr(0x250c))
while node!=None:
stackeditem = chr(0x2502)+node.data+chr(0x2502)
print(stackeditem)
node = node.next
print(chr(0x2514)+(chr(0x2500)*(len(item)-1))+chr(0x2518))
class StackLL:
def __init__(self):
self.head = None
def pushSLL(self, item):
temp = Node(str(item))
temp.setNext(self.head)
self.head = temp
def dump(self):
length = max(len(node.data) for node in self.allNodes()) if self.head else 0
print('\u2510{}\u250c'.format(' '*length))
for node in self.allNodes():
print('\u2502{:<{}}\u2502'.format(node.data, length))
print('\u2514{}\u2518'.format('\u2500'*length))
def allNodes(self):
node = self.head
while node is not None:
yield node
node = node.next
s = StackLL()
s.pushSLL('Arc')
s.pushSLL('Circle')
s.pushSLL('Rect')
s.dump()