我想用Python创建带有以下ascii字符的菜单框:
ASCII码200 =╚(方框绘制字符双线左下角)
ASCII码201 =╔(方框绘制字符双线左上角)
ASCII码202 =╩(箱体绘制字符双线水平或向上)
ASCII码203 =╦(箱体绘制字符双线水平向下)
ASCII码204 =╠(方框绘制字符双线垂直和右侧)
ASCII码205 =═(框图字符双水平线)
ASCII码206 =╬(方框绘制字符双线水平垂直)
然而,这些似乎不受支持。当我使用chr()时,系统打印的是完全不同的东西。
关于如何使用Python 3打印上述字符,您有什么建议吗?
谢谢。
发布于 2017-09-06 11:09:38
它似乎可以与字符串文字一起工作:
>>> symbs = [u'\u255a', u'\u2554', u'\u2569', u'\u2566', u'\u2560', u'\u2550', u'\u256c']
>>> for sym in symbs:
... print(sym)
...
╚
╔
╩
╦
╠
═
╬这似乎适用于我尝试过的所有平台,Windows7、Mac OS、Linux等。
从http://svn.python.org/projects/stackless/trunk/Lib/encodings/cp720.py获取的代码
希望这能有所帮助。
发布于 2019-09-21 03:07:59
后续行动感谢戴夫·爱德华兹。
class TableBorder:
def __init__ (self, top_left, top_split, top_right,
mid_left, mid_split, mid_right,
low_left, low_split, low_right,
horizontal, vertical):
self.top_left = top_left
self.top_split = top_split
self.top_right = top_right
self.mid_left = mid_left
self.mid_split = mid_split
self.mid_right = mid_right
self.low_left = low_left
self.low_split = low_split
self.low_right = low_right
self.horizontal = horizontal
self.vertical = vertical
Borders0 = TableBorder ('+', '+', '+', '+', '+', '+', '+', '+', '+', '-', '|')
Borders1 = TableBorder (u'\u250c',u'\u252C',u'\u2510',u'\u251C',u'\u253C',u'\u2524',u'\u2514',u'\u2534',u'\u2518',u'\u2500',u'\u2502')
Borders2 = TableBorder (u'\u2554',u'\u2566',u'\u2557',u'\u2560',u'\u256C',u'\u2563',u'\u255a',u'\u2569',u'\u255d',u'\u2550',u'\u2551')
def draw_box (width, height, box):
span = width-2
line = box.horizontal * (span)
print (box.top_left + line + box.top_right)
body = box.vertical + (' '*span) + box.vertical
for _ in range (height-1):
print (body)
print (box.low_left + line + box.low_right)
draw_box (20, 10, Borders1)https://stackoverflow.com/questions/46063974
复制相似问题