社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

666!Python 仅用3行代码就输出花式字符串

编程派 • 4 年前 • 1211 次点击  

点击上方“编程派”,选择设为“设为星标

优质文章,第一时间送达!


高逼格的日志



相信Java程序员看到上面的图,一定不会陌生。没错,springboot的启动日志。不知道其他人怎么想,我第一次看到这个启动日志的时候,就觉得好炫酷。然而,大家在日常的Python开发中,日志打印的却枯燥无比。今天就来教大家打印出让同事羡慕,却让领导崩溃的代码输出。


字符串图集鼻祖:figlet


Linux 下有一个好玩的命令: figlet 这个命令是把一些信息用大的”字体”打印出来.



之所以说这个命令好玩,是因为它支持很多种的字符花式输出,这里截取几个示例,感兴趣的朋友可以去它的官网查看完整演示内容:http://www.figlet.org/examples.html



Python为什么为什么这么火,就是因为这货的模块太多了,所以figlet当然也逃不出Python的五指山。下面给大家来说说Python如何实现figlet的功能。


figlet的pyhton实现


万年不变的套路,yaml模块的python实现是pyyaml,所以figlet的python模块大家应该也猜到了,就是pyfiglet。 先来看看他的官网:https://pypi.org/project/pyfiglet/

因为不是什么有建树的模块,所以没什么特别的说明,其中看到这么一段:

USAGE

You can use pyfiglet in one of two ways. First, it operates on the commandline as C figlet does and supports most of the same options. Run with --help to see a full list of tweaks. Mostly you will only use -f to change the font. It defaults to standard.flf.

tools/pyfiglet 'text to render'

Pyfiglet is also a library that can be used in python code:

from pyfiglet import Figlet f = Figlet(font='slant') print f.renderText('text to render')

三行代码,就能实现字符文字的打印,是不是很简单?快下载模块试试吧。 模块下载: pip install pyfiglet


pyfiglet使用讲解


让我们先来按照示例打印看看效果:

from pyfiglet import Figlet
f = Figlet(font='slant')
print(f.renderText('Python'))

output:
    ____        __  __
   / __ \__  __/ /_/ /_  ____  ____
  / /_/ / / / / __/ __ \/ __ \/ __ \
 / ____/ /_/ / /_/ / / / /_/ / / / /
/_/    \__, /\__/_/ /_/\____/_/ /_/
      /____/

有时候,装B就是这么不费吹灰之力。那么,它还有什么其他功能呢?让我们看看它的源码:

class Figlet(object):
    """
    Main figlet class.
    """

    def __init__(self, font=DEFAULT_FONT, direction='auto'
                 justify='auto',width=80)
:

    ...

def main():
    parser = OptionParser(version=__version__,
                          usage='%prog [options] [text..]')
    parser.add_option('-f''--font', default=DEFAULT_FONT,
                      help='font to render with (default: %default)',
                      metavar='FONT')
    parser.add_option('-D''--direction', type='choice',
                      choices=('auto''left-to-right''right-to-left'),
                      default='auto', metavar='DIRECTION',
                      help='set direction text will be formatted in '
                           '(default: %default)')

Figlet提供了font、direction、justfity、width四个字段,刚才说这个模块的花式字体多,来看看有多少吧:

from pyfiglet import Figlet, FigletFont

print(FigletFont().getFonts())
f = Figlet(font='5lineoblique')
print(f.renderText('Breeze Python'))

output:
    //   ) )                                            
   //___/ /   __      ___      ___     ___       ___    
  / __  (   //  ) ) //___) ) //___) )    / /   //___) ) 
 //    ) ) //      //       //          / /   //        
//____/ / //      ((____   ((____      / /__ ((____     
                                                      
                                                      
    //   ) )                                          
   //___/ /         __  ___ / __      ___       __    
  / ____ / //   / /  / /   //   ) ) //   ) ) //   ) ) 
 //       ((___/ /  / /   //   / / //   / / //   / /  
//            / /  / /   //   / / ((___/ / //   / /   


这么多的字体,你挨个测试,都能玩一天...

大家看源码的时候要注意,只要是带了OptionParser、argparse类似的模块,基本都是可以在命令行直接执行的。不信你看:



其他实现与拓展


上面的实现方式,已经简单到极致了,那么还有什么更方便和好玩的?推荐大家两个网站:

在线转换字符:http://patorjk.com/software/taag

ASCII艺术字(图)集:https://www.bootschool.net/ascii-art

bootschool不仅可以生成在线图集,还搜集了很多有趣的字符画,我们可以通过它的ascii艺术字图页签获取,比如我选择人物:

网页下面还有很多同类型的图,这个网站更能让你从天亮玩到天黑。怎么样,介绍了这么多有趣的字符图集,还不快点赞、关注支持下我。

作者:王翔@清风 Python

回复下方「关键词」,获取优质资源


回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版

回复关键词「m」,立即获取Python精选优质文章合集

回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~


题图:pexels,CC0 授权。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/73970
 
1211 次点击  
文章 [ 1 ]  |  最新文章 4 年前