前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一行代码一棵树

一行代码一棵树

作者头像
double
发布2020-07-01 15:19:18
5570
发布2020-07-01 15:19:18
举报
文章被收录于专栏:算法channel

一行代码生成一棵圣诞树

Python 字符串这块可以玩出很多有意思的功能,今天我以一个精简的字符串打印为例来展示。

一棵小树

代码语言:javascript
复制
print('*'.rjust(3),'* *'.rjust(4),'* * *','|'.rjust(3),sep='\n')

结果:

代码语言:javascript
复制
  *
 * *
* * *
  |

这行代码使用了rjust 函数,实现字符串靠右侧对齐。

它的第一个参数指定字符串的长度,也就是说,'*'.rjust(3) 因为只有一个字符*,显然不够长度3,那么怎么办,默认用空格从左侧开始填充2个空格,此时长度不就是3个字符吗!

再需要注意:print 的 sep 这个关键字参数,指明前面几个参数的分割符号。

这棵树不带色彩,那么有没有办法变出一颗五彩斑斓的小树呢?

一颗带颜色树

代码语言:javascript
复制
print("\033[5;35;40m"+'*'.rjust(3)+"\033[0m",'* *'.rjust(4),'* * *','|'.rjust(3),sep='\n')

结果:

这是怎么做到的?与第一节相比,只是多了几个字符:"\033[5;35;40m",怎么解读?\033[ 可理解为格式化打印的前缀,其他字符含义:5表示显示方式为闪烁,35表示前景色为洋红,40m表示背景色为黑色

代码语言:javascript
复制
1、显示方式:
0(默认)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)

2、前景色:
30(黑色)、31(红色)、32(绿色)、 33(×××)、34(蓝色)、35(洋 红)、36(青色)、37(白色)

3、背景色:
40(黑色)、41(红色)、42(绿色)、 43(×××)、44(蓝色)、45(洋 红)、46(青色)、47(白色)

如何做到五彩斑斓?第二、三行分别选用其他前景色:

代码语言:javascript
复制
print("\033[5;35;40m"+'*'.rjust(3)+"\033[0m","\033[5;36;40m"+'* *'.rjust(4)+"\033[0m","\033[5;46;40m* * *\033[0m","\033[5;35;40m"+'|'.rjust(3)+"\033[0m",sep='\n')
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一行代码生成一棵圣诞树
    • 一棵小树
      • 一颗带颜色树
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档