Отпечатайте пълно ASCII изкуство

Опитвам се да отпечатам ascii изкуство по този начин:

print(("""\

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


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

И изходът изобщо не изглежда добре.

Какъв е правилният метод за отпечатване на ascii изкуство?


person user3476998    schedule 13.05.2014    source източник
comment
Да се ​​използват знаци за извеждане на ред? \n   -  person PurkkaKoodari    schedule 13.05.2014
comment
Коя версия на Python е това?   -  person user2357112 supports Monica    schedule 13.05.2014
comment
Използвам Python 3.4.   -  person user3476998    schedule 13.05.2014
comment
Как изглежда изходът?   -  person Rob Watts    schedule 13.05.2014
comment
Използвайте python ASCII art на PyPi - връзка ‹a href=pypi.org/project/art/› тук‹/a›. (Нямам достатъчно репутация, за да коментирам, освен ако не отговарям.)   -  person Reinstate C0MMUNiSM    schedule 09.12.2019


Отговори (5)


encode взема низ и го кодира в байтове. Това не е това, което искате тук; искате просто да отпечатате низа директно:

print("""\

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


                    """)

Ако това не работи, вашият терминал най-вероятно не е конфигуриран да показва Unicode. За съжаление не съм особено запознат с конфигурацията на терминала; Защо терминалът ми не извежда уникод знаци правилно? може да е уместно, но способността ми да помогна е ограничена най-вече до Python страна на нещата.

person user2357112 supports Monica    schedule 13.05.2014
comment
@frostnational: Опитах го и изглежда, че работи добре. - person user2357112 supports Monica; 13.05.2014
comment
Получавам...кодекът не може да кодира символа 'ಠ' в позиция... - person user3476998; 13.05.2014
comment
@frostnational Не е повреден, просто вашето IDE не може да отпечата тези знаци. Заключение, не можете да ги използвате за ascii art! - person aIKid; 13.05.2014

print(r"""\

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


                """)

R ви позволява да отпечатате необработен текст по-добре, особено когато има много кавички в картината, която се опитвате да отпечатате.

person Samantha Penningtoon    schedule 07.03.2018
comment
Препоръчвам това да бъде приетият отговор. - person Lutz Büch; 28.06.2021

Получавам "...кодекът не може да кодира символ 'ಠ' в позиция..."

Ако 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 ви позволява да промените кодирането, ако е необходимо
person jfs    schedule 13.05.2014

Няма нужда да добавяте ''.encode('utf-8')

I print ASCCII art all the time using Python 3.6.7 on Ubuntu machines
__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

ТОГАВА

print(__header__)

И резултатът

Ubuntu-Python3-print(ASCII)

person Nathan Smiechowski    schedule 13.06.2019

печат (r\

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


            """)

това ще въведе или отпечата това в необработен текст

person Jacob OBrien    schedule 21.06.2021