快捷搜索:  汽车  科技

python字符串输出格式化的用法(Python3种格式化字符串方法)

python字符串输出格式化的用法(Python3种格式化字符串方法)Python3.6 版本开始出现了此新的格式化字符串,性能又优于前面两种方式。4. 官方推荐用的方式,%方式在后面的版本终将会被淘汰。1. 不需要理会数据类型。2. 单个参数可以多次输出,参数顺序可以不同。3. 填充方式十分灵活,对齐方式异常强大。

前言

使用Python的伙伴们,经常会用到print输出日志进行调试,那么如何格式化输出字符串?今天跟大家继续分享关于Python的小知识。

python字符串输出格式化的用法(Python3种格式化字符串方法)(1)

说明

我们经常会用到%-formattingstr.format()来格式化,而在Python 3.6版本开始,增加了f-strings语法,下面我将详细的介绍这三种方式。

1. %-formatting格式化字符串
  • 最早的格式化是用%(百分号) 它这么用:

In : name = 'World' In : id = '10' In : 'Hello %s id=%s' %(name id) Out: 'Hello World id=10'

这里用的%s表示格式化成字符串,另外常用的是%d(十进制整数)、%f(浮点数)。

  • 另外也支持使用字典的形式:

In : 'Hello[%(name)s] id=%(name)s' % {'id': 10 'name': 'World'} Hello[World] id=102. str.format()格式化字符串

  • 常规用法

In : name = 'World' In : 'Hello {}' %(name) Out: 'Hello World'

  • 通过位置访问:

In : '{2} {1} {0}'.format('a' 'b' 'c') Out: 'c b a'

  • 通过关键字访问:

In : 'Hello {name}'.format(name='testerzhang') Out: 'Hello testerzhang'

从这里我们可以看出,第二种优于第一种方式:


1. 不需要理会数据类型。


2. 单个参数可以多次输出,参数顺序可以不同。


3. 填充方式十分灵活,对齐方式异常强大。


4. 官方推荐用的方式,%方式在后面的版本终将会被淘汰。

3. f-string格式化字符串(推荐)

Python3.6 版本开始出现了此新的格式化字符串,性能又优于前面两种方式。

python字符串输出格式化的用法(Python3种格式化字符串方法)(2)

In : name = "testerzhang" In : print(f'Hello {name}.') In : print(f'Hello {name.upper()}.') Out: Hello testerzhang. Out: Hello TESTERZHANG.

In : d = {'id': 1 'name': 'testerzhang'} In : print(f'User[{d["id"]}]: {d["name"]}') Out: User[1]: testerzhang

从这里我们可以看出,第三种优于第二种方式:

1. 第二种方式的变量不易阅读,而第三种更加直观。

2. 解决str.format() 接变量后变超长的问题。

f-string格式化字符串是否可以用于低版本的Python3?

如果低于Python3.6,可以通过pip install future-fstrings即可,在相应的py脚本文件里不需要加import这个库,但是需要头部加上# coding: future_fstrings。

但是我还是建议升级到Python3.7版本,因为最新版本解决了一些BUG。

结束语

Python2.X版本现在也不会在支持,现在也开始转向Python3.X版本,强烈推荐第三种方式进行格式化字符串。

你们用的是哪种方式?可以进行评论。


喜欢本文的童鞋,可以关注我 收藏,不明白的地方也可以评论留言。

python字符串输出格式化的用法(Python3种格式化字符串方法)(3)

猜您喜欢: