python-3.x 打印完整的艺术品

yxyvkwin  于 8个月前  发布在  Python
关注(0)|答案(8)|浏览(83)

我试着这样打印ascii图:

print(("""\

                                       ._ o o
                                       \_`-)|_
                                    ,""       \ 
                                  ,"  ## |   ಠ ಠ. 
                                ," ##   ,-\__    `.
                              ,"       /     `--._;)
                            ,"     ## /
                          ,"   ##    /

                    """).encode('utf-8'))

字符串
而且输出看起来一点也不对。
打印ascii艺术品的正确方法是什么?

tyg4sfes

tyg4sfes1#

encode接受一个字符串并将其编码成字节。这不是你想要的;你想直接打印字符串:

print("""\

                                       ._ o o
                                       \_`-)|_
                                    ,""       \ 
                                  ,"  ## |   ಠ ಠ. 
                                ," ##   ,-\__    `.
                              ,"       /     `--._;)
                            ,"     ## /
                          ,"   ##    /

                    """)

字符串
如果这不起作用,那么您的终端很可能没有配置为显示Unicode。不幸的是,我对终端配置不是特别了解; Why doesn't my terminal output unicode characters properly?可能是相关的,但我的帮助主要限于Python方面。

0lvr5msh

0lvr5msh2#

print(r"""\

                                   ._ o o
                                   \_`-)|_
                                ,""       \ 
                              ,"  ## |   ಠ ಠ. 
                            ," ##   ,-\__    `.
                          ,"       /     `--._;)
                        ,"     ## /
                      ,"   ##    /

                """)

字符串
r可以让你更好地打印原始文本,特别是当你试图打印的图片中有很多引号时。

wgxvkvu9

wgxvkvu93#

print(r"""\

                               ._ o o
                               \_`-)|_
                            ,""       \ 
                          ,"  ## |   ಠ ಠ. 
                        ," ##   ,-\__    `.
                      ,"       /     `--._;)
                    ,"     ## /
                  ,"   ##    /

            """)
print(r"""\

                               ._ o o
                               \_`-)|_
                            ,""       \ 
                          ,"  ## |   ಠ ಠ. 
                        ," ##   ,-\__    `.
                      ,"       /     `--._;)
                    ,"     ## /
                  ,"   ##    /

            """)

字符串

6tr1vspr

6tr1vspr4#

我得到“. codec can't encode character '\u0ca0' in position.”
如果print(giraffe)由于字符编码不正确而失败,请尝试正确设置PYTHONIOENCODING环境变量,例如在bash中:

$ PYTHONIOENCODING=utf-8 python3 -c 'from text_art import giraffe as s; print(s)'

字符串
不要使用print(giraffe.encode('utf-8'))

  • print()函数需要文本,而不是字节(无关:要打印字节,可以使用sys.stdout.buffer.write(some_bytes)
  • 如何将字节解释为文本是终端的属性,您不应该在代码中硬编码其设置。PYTHONIOENCODING允许您在必要时更改编码
pes8fvy9

pes8fvy95#

无需添加''.encode('utf-8')

我一直在Ubuntu机器

__header__ = '''Content-Type: application/xml

\033[92m        .---------------------------------.
\033[92m        |  .---------------------------.  |
\033[92m        |[]|\033[94m         __   __   *       \033[92m|[]|
\033[92m        |  |\033[94m        /  | /  | /        \033[92m|  |
\033[92m        |  |\033[94m       (___|(___|(         \033[92m|  |
\033[92m        |  |\033[94m       |   )|    |         \033[92m|  |
\033[92m        |  |\033[94m       |  / |    |         \033[92m|  |
\033[92m        |  |\033[94m /              |         |\033[92m|  |
\033[92m        |  |\033[94m(  ___  ___  ___| ___  ___|\033[92m|  |
\033[92m        |  |\033[94m| |   )|   )|   )|___)|   )\033[92m|  |
\033[92m        |  |\033[94m| |__/ |__/||__/ |__  |__/ \033[92m|  |
..And more

上使用Python 3.6.7打印ASCCII艺术
然后

print(__header__)

结果

vzgqcmou

vzgqcmou6#

print(r"""\

                               ._ o o
                               \_`-)|_
                            ,""       \ 
                          ,"  ## |   ಠ ಠ. 
                        ," ##   ,-\__    `.
                      ,"       /     `--._;)
                    ,"     ## /
                  ,"   ##    /

            """)

字符串
这将类型或打印这在原始文本

7hiiyaii

7hiiyaii7#

为了解决这个问题,我只是在文件的顶层添加了标题'# coding=utf-8',它就可以工作了。
Result of the script

z4iuyo4d

z4iuyo4d8#

在Python 3.12.0中
print(r""" """)print(r''' ''')打印ASCII图形而不会出现任何错误。
r"""r'''之后的空格是至关重要的,r"""r'''之前的空格也是至关重要的。在这种情况下,在print(r""""之后按回车键,然后把马ASCII艺术,然后在ASCII艺术之后按回车键一次或两次,你就可以开始了。

print(r"""

                                   ._ o o
                                   \_`-)|_
                                ,""       \ 
                              ,"  ## |   ಠ ಠ. 
                            ," ##   ,-\__    `.
                          ,"       /     `--._;)
                        ,"     ## /
                      ,"   ##    /

                """)

字符串
print(r"""\ """)print(r'''\ '''),则会沿着ASCII art一起打印反斜杠(\)。

相关问题