当前位置: ManBetXapp > 百科 > 科技 >正文

python格式化字符串

人气:277 ℃ /2022-12-20 09:45:20

python怎么格式化字符串呢?不知道的小伙伴来看看小编今天的分享吧!

python中格式化字符串有三种方法:%、format()、添加的f字符串调试。

1、%格式化字符串

%格式化字符串是python最早的,也是能兼容所有版本的一种字符串格式化方法,在一些python早期的库中,建议使用%格式化方式,他会把字符串中的格式化符按顺序后面参数替换,格式是

"xxxxxx %s xxxxxx" % (value1, value2)

其中 %s就是格式化符,意思是把后面的值格式化为字符类型,类似的格式化符还有%d,%f等,具体参考文章Python字符串格式化

后面的value1,value2就是要格式化的值,不论是字符还是数值,都会被格式化为格式化符对应的类型

当然可以不用以元组的形式传值,你可以直接写这样:"xxxxx %s" % value,不过不建议这样写,一是应为这样只能传递一个参数,二是如果value是元组或列表等类型,这样会触发TypeErrer

如果只传一个参数,并且很确定参数类型不会触发异常,可以使用上面的写法,否则,要提供一个单元素元组,就像"xxxx %s " % (value,)

2、format()

%虽然强大,但用起来难免有些麻烦,代码也不是特别美观,因此,在python 2.5 之后,提供了更加优雅的str.format()方法。

def format(self, *args, **kwargs): # known special case of str.format

"""

S.format(*args, **kwargs) -> str

Return a formatted version of S, using substitutions from args and kwargs.

The substitutions are identified by braces ('{' and '}').

"""

pass

format()的常用用法:

# 使用名称占位符

s2 = "xxxx {age} xxxx {name}".format(age=18, name="hangman")

print(s2) # xxxx 18 xxxx hangman

# 使用序号占位符,为空默认从左到右01234.。

s3 = "xxxx {1} xxx{0}".format(value1,value2)

print(s3) # xxxx [9, 0] xxx(7, 8)

# 也可以混合使用

s4 = "xxxx {} XXX {name} xxx {}".format(value2,value1,name="s4")

print(s4) # xxxx [9, 0] XXX s4 xxx (7, 8)

3、 f-string

f-string是2015年python 3.6 根据PEP 498新添加的一种字符串格式化方法,f-string实际上是在运行时计算的表达式,而不是常量值。在Python源代码中,f-string是一个文字字符串,前缀为’f’,其中包含大括号内的表达式。表达式会将大括号中的内容替换为其值。例如:

import datetime

name = "zings"

age = 17

date = datetime.date(2019,7,18)

print(f'my name is {name}, this year is {date:%Y},Next year, I\'m {age+1}') # my name is zings, this year is 2019,Next year, I'm 18

以上就是小编今天的分享了,希望可以帮助到大家。

python格式化字符串的方法

Python字符串方法之-字符串格式化

17、format()

描述:Python2.6 开始,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。基本语法是通过{}:来代替以前的%。使用format()来格式化字符串时,使用在字符串中使用{}作为占位符,占位符的内容将引用format()中的参数进行替换。可以是位置参数、命名参数或者兼而有之。

format 函数可以接受不限个参数,位置可以不按顺序。

语法:format(value, format_spec)

参数:

示例:

# 位置参数'{}:您{}购买的{}到了!请下楼取快递。'.format('快递小哥','淘宝','快递')'快递小哥:您淘宝购买的快递到了!请下楼取快递。'#给批量客户发短息n_list=['马云','马化腾','麻子','小红','李彦宏','二狗子']for name in n_list: print('{0}:您淘宝购买的快递到了!请下楼取快递!'.format(name))马云:您淘宝购买的快递到了!请下楼取快递!马化腾:您淘宝购买的快递到了!请下楼取快递!麻子:您淘宝购买的快递到了!请下楼取快递!小红:您淘宝购买的快递到了!请下楼取快递!李彦宏:您淘宝购买的快递到了!请下楼取快递!二狗子:您淘宝购买的快递到了!请下楼取快递! #名字进行填充 for n in n_list: print('{0}:您淘宝购买的快递到了!请下楼取快递!'.format(n.center(3,'*'))) *马云:您淘宝购买的快递到了!请下楼取快递!马化腾:您淘宝购买的快递到了!请下楼取快递!*麻子:您淘宝购买的快递到了!请下楼取快递!*小红:您淘宝购买的快递到了!请下楼取快递!李彦宏:您淘宝购买的快递到了!请下楼取快递!二狗子:您淘宝购买的快递到了!请下楼取快递!'{0}, {1} and {2}'.format('gao','fu','shuai')'gao, fu and shuai'x=3y=5'{0} {1}={2}'.format(x,y,x y)# 命名参数'{name1}, {name2} and {name3}'.format(name1='gao', name2='fu', name3='shuai')'gao, fu and shuai'# 混合位置参数、命名参数'{name1}, {0} and {name3}'.format("shuai", name1='fu', name3='gao')'fu, shuai and gao'#for循环进行批量处理["vec_{0}".format(i) for i in range(0,5)]['vec_0', 'vec_1', 'vec_2', 'vec_3', 'vec_4']['f_{}'.format(r) for r in list('abcde')]['f_a', 'f_b', 'f_c'

18、format_map()

描述:返回字符串的格式化版本。在Python3中使用format和format_map方法都可以进行字符串格式化,但format是一种所有情况都能使用的格式化方法,format_map仅使用于字符串格式中可变数据参数来源于字典等映射关系数据时才可以使用。

语法:str.format_map(mapping) -> str 返回字符串

参数:mapping 是一个字典对象

示例:

People = {"name": "john", "age": 33}"My name is {name},iam{age} old".format_map(People)#对比案例定义一个字典student = {'name':'张三','class':'20200504','score':748}使用format输出相关信息:'{st[class]}班{st[name]}总分:{st[score]}'.format(st=student)'20200504班张三总分:748'format_map方法后如下'{class}班{name}总分:{score}'.format_map(student)'20200504班张三总分:7

搜索更多有关“ python格式化字符串”的信息 [百度搜索] [SoGou搜索] [头条搜索] [360搜索]
CopyRight © 2008-2024 ManBetXappAll Rights Reserved. 手机版