一直以来,字符串的格式化输出对于编程来说,尤其是新手,还是挺麻烦的。对于这部分的内容,笔者的建议是,只要大致能满足输出要求,越简单越好,别整那复杂的~(图文无关[俏皮])

工具/原料

Python 2.7.11

问题

今天写这个经验的缘由是看到下面这个字符串输出的提问

问:排版最后怎么是歪的呢!麻烦大神们看看为什么!

下面是具体代码:(文末会解答这个问题)

END

背景知识

在Python我们有很方便的格式化字符串函数format。应该说自从用了format函数以后,传统的字符格式化笔者已经不会再用了^_^。下图是占位符用法

下面是简单的格式化用法。应该说掌握这两部分内容已经可以处理大部分的字符串格式化问题了。更多的format函数的用法大家可以参考文末链接。

END

测试

1

我们先来看一下下面这部分代码。看起来这是一份无懈可击的代码了,所有的打印输出都是用相同的format函数,并且每行字符的长度(还是个数?)都是相同的20

2

然而,通过运行代码,观察结果,我们发现,现实跟预想有差距。

我们发现,所有含中文的格式化字符串的输出在“长度”上都比英文字符要短。所以我们有理由推测,format函数里面的20表示的是字节数。因为,一个汉字是两个字节的

3

所以按照上面的推测,我们重新调整了包含汉字的输出代码:

对11行代码因为有3个汉字,把需要的字节数增加到23

对12行代码因为有2个汉字,把需要的字节数增加到22

测试的结果,可以说,是完美的:)

END

解决步骤

1

现在我们回到原来的问题。我们看到,问题中的格式问题其实就是我们在上面的测试中发现的因中文引起的问题。

2

考虑到代码中使用了两种格式化字符串技术,为了方便起见(简单~),我们先调整一下代码,把代码转换为使用format函数的写法

3

好,现在我们按照测试的时候的方法,对于包含中文的字符串,增加打印的字节数。表头表尾也不能忍,也一并改了。效果棒棒哒~

4

我们再一次review代码,发现第三个的占位符里面有多余的代码,于是删除了。发现删除后内容部分最后一行的对齐方式发生了变化,还是汉字字数的问题,再调整!

5

好,现在我们的问题在这里是解决了,完全的!

END

One More Thing

其实对于这个问题是有一种很简单纯粹也很暴力的方法了,推荐大家多多使用~

我们来看新的代码

有两个问题大家要注意。content这个变量是直接把打印内容用三个引号括起来的,这样里面的内容就有了一个新名字“文本字符串”,而它里面的格式是真正所见即所得的,大家手动对齐就好了。打印出来就是这个效果。

对于另一个问题,是关于print函数的。我们知道print函数默认是会换行的,所以如果换另外一种更直观的写法,我们需要在print函数后面加逗号。完。

END

注意事项

format官方介绍:https://docs.python.org/2/library/string.html#formatspec

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

展开阅读全部

python语言格式化输出_Python | 格式化输出字符串相关推荐

  1. python语言format用法_python格式化输出之format用法

    多种格式化 'b' - 二进制.将数字以2为基数进行输出. 'c' - 字符.在打印之前将整数转换成对应的Unicode字符串. 'd' - 十进制整数.将数字以10为基数进行输出. 'o' - 八进 ...

  2. python输出变量的值使用_如何使用python语言中的输入和输出打印对应的值

    在python设计语言中,输入使用input()方法,而输出使用print()方法:其中,输出方法可以拼接变量,如字符串.数值类型的.下面利用几个实例说明python语言中的输入和输出的用法,操作如下 ...

  3. python a和b字符串和占位符输出_python格式化输出

    python格式化输出 一.格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提 ...

  4. python strftime格式化显示_Python 格式化输出时间字符串函数 strftime

    strftime()函数将时间格式化 我们可以使用strftime()函数将时间格式化为我们想要的格式.它的原型如下: size_t strftime( char *strDest, size_t m ...

  5. python如何控制输出格式_python格式化输出

    python格式化输出 一.格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提 ...

  6. python格式化字符_Python格式化字符串

    一.通过%来格式化输出. 格式化字符串时,Python使用一个字符串作为模板.模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式.Python用一个tuple将多个值传递给模板, ...

  7. python字符串补空格输出_python实现指定字符串补全空格、前面填充0的方法

    Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0. zfill()方法语法:str.zfill(width) 参数width -- 指定字符串的长度.原字符串右对齐,前 ...

  8. python数据输出_python数据输出

    下面的是我的code, 但是最后的结果全部都是others,有哪位大神能帮忙看产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个表达式.这个函数传递表达式转换为一个字符串,如下结果 ...

  9. python输入年月日输出_python下输出指定年月日的方法之一

    参考自:http://www.cnblogs.com/rollenholt/archive/2012/04/11/2441699.html 格式字符串 datetime.date.time都提供了st ...

  10. python怎么输出_Python如何输出整数

    Python输出整数的方法: 先使用str()函数将数字转换成字符串赋值给变量i,再用"if i.count('.') == 0"语句判断字符串中是否没有小数点,如果是则输出这个字 ...

最新文章

  1. http status 汇总
  2. Ampere 携手 Rigetti 开发混合量子经典计算机
  3. 电子信息工程水声考研去向_哈工大电子与信息工程专业考研 科研方向汇总
  4. d3 力导向图 force graph
  5. Visual Studio 2017 - Update 2预览版已发布
  6. ASP.NET那点不为人知的事(二)
  7. ARM产品系列对应架构图
  8. 荣耀正式出售!30余家代理商接盘自救,华为回应...
  9. linux常用命令清单
  10. 开发微信小程序-家教信息平台的策划
  11. 静态NAT64实验配置
  12. Linux之CentOS tar压缩与解压命令大全
  13. 蓝桥杯嵌入式解决LCD与LED冲突的方法
  14. 人机交互系统(1.2) ——深度神经网络(孪生网络)
  15. 分解为具有无损连接性和依赖保持性的3NF的方法以及例子
  16. 技术与市场脱钩?90%的程序员都错了!
  17. 混叠(aliasing)和抗混叠滤波器
  18. 【愚公系列】2022年12月 .NET CORE工具案例-多语言离线翻译系统
  19. 计算机不能通讯,S7-200与电脑不能通讯问题
  20. Centos7 mysql5.7.28 Unit mysqld.service entered failed state.

热门文章

  1. “后完美日记”时代,橘朵、花知晓、funnyelves们还有机会吗?
  2. 湊湊很好,但依旧“难撑”呷哺呷哺的野心
  3. 新东方财报背后:增收不增利之下,“下沉”“上线”能有坦途?
  4. 方案 mysql 优点_mysql高可用方案分析
  5. centos7配置br0_centos7 bond 和 网桥配置
  6. centos 对某ip开放 防火墙端口_CentOS防火墙iptables限制端口和来源IP地址访问的配置...
  7. php管道邮件,php进程通信-PIPE管道通信
  8. Python基础入门:常用的os操作
  9. 百分之九十的人不知道?在Python中f-string的几个技巧
  10. Python变量的作用域的使用