首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中打印扩展ASCII字符

在Python中打印扩展ASCII字符
EN

Stack Overflow用户
提问于 2017-09-06 06:04:39
回答 2查看 15K关注 0票数 5

我想用Python创建带有以下ascii字符的菜单框:

ASCII码200 =╚(方框绘制字符双线左下角)

ASCII码201 =╔(方框绘制字符双线左上角)

ASCII码202 =╩(箱体绘制字符双线水平或向上)

ASCII码203 =╦(箱体绘制字符双线水平向下)

ASCII码204 =╠(方框绘制字符双线垂直和右侧)

ASCII码205 =═(框图字符双水平线)

ASCII码206 =╬(方框绘制字符双线水平垂直)

然而,这些似乎不受支持。当我使用chr()时,系统打印的是完全不同的东西。

关于如何使用Python 3打印上述字符,您有什么建议吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-06 11:09:38

它似乎可以与字符串文字一起工作:

代码语言:javascript
复制
>>> 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获取的代码

希望这能有所帮助。

票数 6
EN

Stack Overflow用户

发布于 2019-09-21 03:07:59

后续行动感谢戴夫·爱德华兹。

代码语言:javascript
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46063974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档