零基础学编程030:像黑客般玩玩字符艺术

经常安装盗版软件的朋友可能会看到一些由字母组成的奇怪图案,比如下面这张图:

(图片来自于网络)

在Python里,我们无法用字母拼出如此复杂的图案,但也可以搞点简单的字符艺术,这就要用到pyfiglet模块库了。看看FIGlet官网(www.figlet.org)上的简介,figlet就是用一些普通符号拼出一个比较大的字符图案,比如这样:

安装pyfiglet

figlet本身支持多种平台,有人用python实现了figlet,就是pyfiglet模块。在《零基础学编程027:站在巨人的肩膀上》中我们已经会使用pip安装第三方模块库,这里复习一下安装命令。

python -m pip install pyfiglet

源代码

程序很简单,只需三行:

from pyfiglet import Figlet
fig = Figlet(font='standard')
print(fig.renderText('Shen Longbin'))

第一行是import语句,不多解释,用到了类Figlet。

第二行构造一个对象fig,指定一种字体。

第三行fig.renderText()可以产生出字符串拼出的图案。

换换字体和文字

实际上pyfiglet的主要用法用这么多,还有一些选项并不常用,你只需要换换不同的字体(http://www.figlet.org/fontdb.cgi)就可以产生不同的效果了。官方的figlet也支持点阵的宋体和仿宋汉字,但pyfiglet好像并不支持汉字。

我经过试验,比较喜欢这几种字体:'letters', 'banner', 'doh', 'cricket', 'slant', 'univers', 'starwars', 'rounded', 'roman', 'puffy', 'pebbles', 'larry3d', 'epic'。喜欢玩的就自己去试吧。

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-03-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏221-B

逆向从 Instruments 中获取 GPU 数据

背景: RTMP SDK需要获取硬编硬解时候的GPU数据,第一时间想起了TraceParser, 但是TraceParser不支持GPU Driver模板. ...

861
来自专栏老马寒门IT

灯箱效果插件Magnific Popup详解

Magnific Popup 是一个非常优秀的弹出对话框或者灯箱效果插件。它基于jQuery(zepto)开发,使用非常简单,特点就是:非常好用。

770
来自专栏Java学习网

Chrome开发者工具的小技巧

 Chrome的开发者工具是个很强大的东西,相信程序员们都不会陌生,不过有些小功能可能并不为大众所知,所以,写下这篇文章罗列一下可能你所不知道的功能,有的功能可...

3934
来自专栏全沾开发(huā)

项目结构——JavaScript版本的2048实现[0]

项目结构——JavaScript版本的2048实现[0] 最近在看一本书《HTML5 Canvas开发详解》 看到了一定程度,打算找...

3456
来自专栏AI科技大本营的专栏

一文总结学习Python的14张思维导图

本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库,后续会发布相应专题的文章)。 首先,按顺序依次展示了以下内容的一系列思维导图:基础知识,...

31910
来自专栏PPV课数据科学社区

【学习】如何快速批量删除Excel单元格中的“换行符”

在Excel单元格中按Alt+Enter就会进行换行,就像在Word中按回车键一样。如果许多单元格中都包含这样的“换行符”,现在要将其全部删除掉,...

2483
来自专栏hightopo

原 基于HTML5 Canvas 点击添加

964
来自专栏Android随笔

Android开发实践

全部使用小写字母。一级包名常见的有:com/cn/org/net,二级包名以公司或个人来命名,三级包名根据应用进行命名,四级包名为模块名或层级名。

1191
来自专栏守候书阁

vue快速入门的三个小实例

用vue做项目也有一段时间了,之前也是写过关于vue和webpack构建项目的相关文章,大家有兴趣可以去看下webpack+vue项目实战(一,搭建运行环境和相...

811
来自专栏哲学驱动设计

OEA 中 WPF 树型表格虚拟化设计方案

    最近用 OEA 做的仓库管理系统中,许多界面的都需要使用表格控件来显示数据。一是这些表格的列非常多,有的甚至达到了 200 列,而且一个模块的界面中可能...

1847

扫码关注云+社区