前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python全栈开发《29.字符串格式化的三种方式之格式化函数-format、新格式化方案:f-strings》

python全栈开发《29.字符串格式化的三种方式之格式化函数-format、新格式化方案:f-strings》

作者头像
清菡
发布于 2024-10-15 10:43:16
发布于 2024-10-15 10:43:16
10800
代码可运行
举报
文章被收录于专栏:清菡软件测试清菡软件测试
运行总次数:0
代码可运行

1.字符串格式化函数-format

  • 1)string.format函数用来格式化字符串。
  • 2)使用format的字符串主体使用{}大括号来替代格式符。
  • 3)完整用法:string.format(data,data,data...)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print('hello {0},今天看起来气色{1}'.format('小编','不错'))

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/1.py 
hello 小编,今天看起来气色不错

进程已结束,退出代码为 0

0和1分别代表了format中的顺序。0代表小编,1代表不错。

不需要在{}中添加位置的数字:0,1这样的,添加了位置数字也是没有错的:

例1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8

info = 'my name is %s,my age is %s'

name_01 = '小编'
age_01 = 10
name_02 = 'dewei'
age_02 = 33
print(info % (name_01,age_01))
print(info % (name_02,age_02))

message = '您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值'
print(message % ('星期一',123456789))
print(message % (1234567,'星期2'))
print(message)

books =['python','django','flask']
info_2 = 'my name is %s,my age is %s,my book is %s'
print(info_2 % (name_01,age_01,books))

dict_01 = {'a':'a','b':'b'}
print('dict is %s' % dict_01)

info_3  = 'my name is {},my age is {}'
print(info_3.format(name_02,age_02))

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format.py 
my name is 小编,my age is 10
my name is dewei,my age is 33
您好,今天是星期一,您的手机号码:123456789 已经欠费了,请尽快充值
您好,今天是1234567,您的手机号码:星期2 已经欠费了,请尽快充值
您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值
my name is 小编,my age is 10,my book is ['python', 'django', 'flask']
dict is {'a': 'a', 'b': 'b'}
my name is dewei,my age is 33

进程已结束,退出代码为 0

例2:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8

info = 'my name is %s,my age is %s'

name_01 = '小编'
age_01 = 10
name_02 = 'dewei'
age_02 = 33
print(info % (name_01,age_01))
print(info % (name_02,age_02))

message = '您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值'
print(message % ('星期一',123456789))
print(message % (1234567,'星期2'))
print(message)

books =['python','django','flask']
info_2 = 'my name is %s,my age is %s,my book is %s'
print(info_2 % (name_01,age_01,books))

dict_01 = {'a':'a','b':'b'}
print('dict is %s' % dict_01)

info_3  = 'my name is {0},my age is {1},my book is {2}'
print(info_3.format(name_02,age_02,books))

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format.py 
my name is 小编,my age is 10
my name is dewei,my age is 33
您好,今天是星期一,您的手机号码:123456789 已经欠费了,请尽快充值
您好,今天是1234567,您的手机号码:星期2 已经欠费了,请尽快充值
您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值
my name is 小编,my age is 10,my book is ['python', 'django', 'flask']
dict is {'a': 'a', 'b': 'b'}
my name is dewei,my age is 33,my book is ['python', 'django', 'flask']

进程已结束,退出代码为 0

如果format中的数量和格式符不一致,就会报错:

例3:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8

info = 'my name is %s,my age is %s'

name_01 = '小编'
age_01 = 10
name_02 = 'dewei'
age_02 = 33
print(info % (name_01,age_01))
print(info % (name_02,age_02))

message = '您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值'
print(message % ('星期一',123456789))
print(message % (1234567,'星期2'))
print(message)

books =['python','django','flask']
info_2 = 'my name is %s,my age is %s,my book is %s'
print(info_2 % (name_01,age_01,books))

dict_01 = {'a':'a','b':'b'}
print('dict is %s' % dict_01)

info_3  = 'my name is {0},my age is {1},my book is {2}'
print(info_3.format(name_02,age_02))

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format.py 
my name is 小编,my age is 10
my name is dewei,my age is 33
您好,今天是星期一,您的手机号码:123456789 已经欠费了,请尽快充值
您好,今天是1234567,您的手机号码:星期2 已经欠费了,请尽快充值
您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值
my name is 小编,my age is 10,my book is ['python', 'django', 'flask']
dict is {'a': 'a', 'b': 'b'}
Traceback (most recent call last):
 File "/Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format.py", line 25, in <module>
   print(info_3.format(name_02,age_02))
IndexError: Replacement index 2 out of range for positional args tuple

进程已结束,退出代码为 1

2.python3.6加入的新格式化方案:f-strings

  • 定义一个变量。
  • 字符串前加f符号。
  • 需要格式化的位置使用{变量名}。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8

info = 'my name is %s,my age is %s'

name_01 = '小编'
age_01 = 10
name_02 = 'dewei'
age_02 = 33
print(info % (name_01,age_01))
print(info % (name_02,age_02))

message = '您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值'
print(message % ('星期一',123456789))
print(message % (1234567,'星期2'))
print(message)

books =['python','django','flask']
info_2 = 'my name is %s,my age is %s,my book is %s'
print(info_2 % (name_01,age_01,books))

dict_01 = {'a':'a','b':'b'}
print('dict is %s' % dict_01)

info_3  = 'my name is {0},my age is {1},my book is {2}'
print(info_3.format(name_02,age_02,books))

info_4 =  f'my name is {name_01},my age is {age_02}'
print(info_4)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format.py 
my name is 小编,my age is 10
my name is dewei,my age is 33
您好,今天是星期一,您的手机号码:123456789 已经欠费了,请尽快充值
您好,今天是1234567,您的手机号码:星期2 已经欠费了,请尽快充值
您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值
my name is 小编,my age is 10,my book is ['python', 'django', 'flask']
dict is {'a': 'a', 'b': 'b'}
my name is dewei,my age is 33,my book is ['python', 'django', 'flask']
my name is 小编,my age is 33

进程已结束,退出代码为 0

这种格式化方法,一定要提前定义好变量名,否则是无法使用的。

3.哪种格式化方法更好?

推荐使用format函数,使用format函数不需要提前定义好变量名,也比第一种方法:根据类型定义的格式化,更简单。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8

info = 'my name is %s,my age is %s'

name_01 = '小编'
age_01 = 10
name_02 = 'dewei'
age_02 = 33
print(info % (name_01,age_01))
print(info % (name_02,age_02))

message = '您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值'
print(message % ('星期一',123456789))
print(message % (1234567,'星期2'))
print(message)

books =['python','django','flask']
info_2 = 'my name is %s,my age is %s,my book is %s'
print(info_2 % (name_01,age_01,books))

dict_01 = {'a':'a','b':'b'}
print('dict is %s' % dict_01)

info_3  = 'my name is {0},my age is {1},my book is {2}'
print(info_3.format(name_02,age_02,books))

info_4 =  f'my name is {name_01},my age is {age_02}'
print(info_4)

print(info_3.format('dewei',33,['python']))

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/format.py 
my name is 小编,my age is 10
my name is dewei,my age is 33
您好,今天是星期一,您的手机号码:123456789 已经欠费了,请尽快充值
您好,今天是1234567,您的手机号码:星期2 已经欠费了,请尽快充值
您好,今天是%s,您的手机号码:%s 已经欠费了,请尽快充值
my name is 小编,my age is 10,my book is ['python', 'django', 'flask']
dict is {'a': 'a', 'b': 'b'}
my name is dewei,my age is 33,my book is ['python', 'django', 'flask']
my name is 小编,my age is 33
my name is dewei,my age is 33,my book is ['python']

进程已结束,退出代码为 0
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python全栈开发《28.字符串格式化的三种方式之根据类型定义的格式化》
游乐园有旋转木马,是否玩过?这些旋转木马之上,每天都会迎来不同的面孔的小朋友去游玩。
清菡
2024/10/15
980
python全栈开发《28.字符串格式化的三种方式之根据类型定义的格式化》
python全栈开发《30.字符串格式化的常用格式符》
清菡
2024/10/15
950
python全栈开发《30.字符串格式化的常用格式符》
python全栈开发《51.字典的values函数》
在python中,list() 是一个构造函数,用于将其他可迭代对象(如字符串、元组、集合等)转换为列表。它会返回一个新的列表对象。
清菡
2024/10/21
970
python全栈开发《51.字典的values函数》
python全栈开发《17.字符串的小写内置函数:lower与casefold》
string.casefold(),也就是说:调用字符串的casefold函数,并且函数的()内什么都不用填写,因为它没有参数,不需要传。
清菡
2024/10/15
930
python全栈开发《17.字符串的小写内置函数:lower与casefold》
python全栈开发《21.字符串的count函数》
string代表需要处理的字符串。通过.count(item)来调用这个函数。()里的item是要被查询个数的元素。它会返回一个整型。那么inttype就是说:返回的是一个数字。
清菡
2024/10/15
750
python全栈开发《21.字符串的count函数》
python全栈开发《19.字符串的swapcase函数》
string代表需要处理的字符串。通过这个字符串执行它的内置函数.swapcase(),并且通过()来执行,生成一个新的字符串。将这个新的字符串赋予新的变量newstr。
清菡
2024/10/15
1130
python全栈开发《19.字符串的swapcase函数》
Python字符串的格式化
字符串的格式化 什么是格式化 一个固定的字符串中有部分元素是根据变量的值而改变的字符串 使用格式化场景和目的 发送邮件的时候 发送短信的时候 App上发推送的时候 对于重复性很多的信息,通过格式化的形式,可以减少代码的书写量 格式化的三种方式 字符串格式化使用操作符 % 来实现 字符串格式化函数 - format(官方比较推荐) string.format函数用来格式化字符串 使用 format 的字符串主体使用 {} 大括号来代替格式符 string.format(date,date,date...)
Zkeq
2022/05/18
8290
Python字符串的格式化
Python - 字符串格式化详解(%、format)
相对基本格式化输出采用 % 的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号 {} 作为特殊字符代替 %
小菠萝测试笔记
2020/06/09
28.1K0
说说Python有几种字符串格式化?
小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。
程序员小猿
2021/01/19
3670
python3-交互与字符串格式化
# Auther: Aaron Fan #字符转格式化: name = input("Enter your name: ") age = int(input("Enter your age: ")) job = input("Enter your job: ") #方法1(最推荐的方法) info2 = '''    ---------- The %s info ----------    Name is %s.    Age is %d.    Job is %s ''' % (name,n
py3study
2020/01/10
2970
python全栈开发《07.数据类型之数字类型的应用、初识字符串类型》
看图片,这是一个网页,里面有很多的内容。字符串就像我们说的话,通过字符串的形式,帮助我们去展示,去读写。这个图片上所有的信息都是字符串。
清菡
2024/06/25
670
python全栈开发《07.数据类型之数字类型的应用、初识字符串类型》
[Python零基础入门篇①⑨] - 字符串格式化
定义:一个固定字符串中有部分成员(元素)会根据变量的值的改变而改变的字符串,这就是字符串格式化。
哈哥撩编程
2024/06/30
910
[Python零基础入门篇①⑨] - 字符串格式化
python全栈开发《53.字典的删除》
错误出现在使用了关键字参数 default=,而 get() 方法不支持这种用法。正确的调用方式是直接将自定义的默认值(default的值)作为第二个位置参数传递,如下所示:
清菡
2024/10/22
770
python全栈开发《53.字典的删除》
python全栈开发《24.字符串的strip函数》
item:就是传一个你想去掉的元素,当然也可以不填。如果不填写item,默认是去掉字符串左右两边的空格。
清菡
2024/10/15
810
python全栈开发《24.字符串的strip函数》
python全栈开发《47.索引与切片之字符串》
字符串的索引和列表的索引方式是一样的。只不过列表中,每个元素自身拥有一个索引位置。
清菡
2024/10/15
1050
python全栈开发《47.索引与切片之字符串》
python全栈开发《65.字符串与列表之间的转换》
如果字符串中有空格,且不填写sep这个参数,那么split函数就会默认按照空格将字符串进行切割。
清菡
2024/11/21
1310
python全栈开发《65.字符串与列表之间的转换》
python全栈开发《49.字典添加修改数据的方法:内置函数update、内置函数setdefault》
可以给当前的字典中添加一个新的字典,如新字典中有和原字典相同的key,则该key的value会被新字典的key的value覆盖。
清菡
2024/10/21
780
python全栈开发《49.字典添加修改数据的方法:内置函数update、内置函数setdefault》
python全栈开发《23.字符串的find与index函数》
info.endswith('this is a string example!!')或info.startswith('this is a string example!!')相当于bool(info == 'this is a string example!!'),效果是一样的。
清菡
2024/10/15
1300
python全栈开发《23.字符串的find与index函数》
python全栈开发《39.列表的reverse函数》
清菡
2024/10/15
790
python全栈开发《39.列表的reverse函数》
python全栈开发《56.字典中的末尾删除函数:popitem》
“get函数拿到key的值,然后通过bool类型判断key的值。而成员运算符是对key做判断。”更改为:
清菡
2024/10/25
890
python全栈开发《56.字典中的末尾删除函数:popitem》
推荐阅读
相关推荐
python全栈开发《28.字符串格式化的三种方式之根据类型定义的格式化》
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文