脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - python中format的用法实例详解

python中format的用法实例详解

2023-02-20 13:54月夜风雨磊 Python

fotmat作为Python的的格式字符串函数,主要通过字符串中的花括号{},来识别替换字段,从而完成字符串的格式化,下面这篇文章主要给大家介绍了关于python中format用法的相关资料,需要的朋友可以参考下

format是字符串内嵌的一个方法,用于格式化字符串。以大括号{}来标明被替换的字符串。

1、基本用法

1. 按照{}的顺序依次匹配括号中的值

?
1
2
3
4
5
6
s = "{} is a {}".format('Tom', 'Boy')
print(s) # Tom is a Boy
 
s1 = "{} is a {}".format('Tom')
# 抛出异常, Replacement index 1 out of range for positional args tuple
print(s1)

2. 通过索引的方式去匹配参数

?
1
2
3
4
5
s = "{0} is a {1}".format('Tom', 'Boy')
print(s) # Tom is a Boy
 
s1 = "{1} is a {2}".format('Tom', 'Lily', 'Girl')
print(s1) # Lily is a Girl

字符串中索引的顺序可以打乱,并不影响匹配。

?
1
2
s = "{1} is a {0}".format('Boy', 'Tom', )
print(s) # Tom is a Boy

3. 通过参数名来匹配参数

?
1
2
s = "{name} is a {sex}".format(name='Tom', sex='Boy')
print(s) # Tom is a Boy

同理,如果参数已经确定,可以直接利用{}进行格式化引用。

?
1
2
3
4
5
name = 'Tom'
sex = 'Girl'
# 以f开头表示在字符串中支持大括号内的python表达式   此用法3.6之后支持
s = f"{name} is a {sex}"
print(s) # Tom is a Boy

4. 混搭使用

可以通过索引,参数名来混搭进行匹配。

?
1
2
s = "My name is {}, i am {age} year old, She name is {}".format('Liming', 'Lily', age=10)
print(s) # My name is Liming, i am 10 year old, She name is Lily

需要注意的是,命名参数必须写道最后。负责会编译报错!

?
1
2
s = "My name is {}, i am {age} year old, She name is {}".format('Liming', age=10, 'Lily')
print(s)  # SyntaxError: positional argument follows keyword argument

另外,不可以索引和默认格式化混合使用。

?
1
2
3
4
5
6
7
8
s = "{} is a {0}".format('Boy', 'Tom', )
print(s)
 
s1 = "{} is a {1}".format('Boy', 'Tom', )
print(s1)
 
#以上两种写法均报异常。
# ValueError: cannot switch from automatic field numbering to manual field specification

2、进阶用法

1. 通过对象的属性

?
1
2
3
4
5
class Names():
    name1='Kevin'
    name2='Tom'
print 'hello {names.name1} i am {names.name2}'.format(names=Names)
# hello Kevin i am Tom

2. 支持对参数部分引用

可以通过索引对参数的部分进行取值。如下:s[0] = w。

?
1
2
3
s = "The word is {s}, {s[0]} is initials".format(s='world')
# The word is world, w is initials
print(s)

3. 数字的处理

如何使用format 保留两位小数呢? 需要使用:.2f,在用%进行格式化时我们使用的是%:.2f

?
1
2
3
4
5
s = 'π is {:.2f}'.format(3.1415926)
print(s) # π is 3.14
 
s1 = 'π is %.2f'% 3.1415926
print(s1) # π is 3.14

同时这种方法还可以用于字符串截取,不过数字后面就不能加f了。

?
1
2
s = "{:.1}".format('Hello')
print(s) # H

给数字加千位符

?
1
2
s = "{:,}".format(1000000)
print(s) # 1,000,000

将数字转换成二进制

?
1
2
s = "{:b}".format(8)
print(s) # 1000

将数字转换成八进制

?
1
2
s = "{:o}".format(8)
print(s) # 10

将数字转换成十六进制

?
1
2
s = "{:X}".format(12)
print(s) # C

4. 格式处理

通过:+数字指定转换后的字符串长度,不足的部分用空格补充

?
1
2
3
4
5
s = "{:2}b".format('a')
print(s) # a b  (a后面补了一个空格)
# 如果指定的长度小于参数的长度,按照原参数匹配
s1 = "{:2}World".format('Hello')
print(s1) # HelloWorld

5. 字符的填充

可通过:符号^数字进行字符串的填充。 其中数字为填充后的字符串总长度。

?
1
2
3
4
5
s = "{:*^10}".format('Hello')
print(s) # **Hello***
 
s = "{:-^20}".format('123456')
print(s) # -------123456-------

如果数字小于字符串的长度,则不进行填充操作。

?
1
2
s = "{:*^3}".format('Hello')
print(s) # Hello

6. list、tuple的拆分

在format格式化时,可使用* 或者 ** 进行对list、tuple拆分。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
foods = ['fish', 'beef', 'fruit']
s = 'i like eat {} and {} and {}'.format(*foods)
# i like eat fish and beef and fruit
print(s)
 
foods = ['fish', 'beef', 'fruit']
s = 'i like eat {2} and {0} and {1}'.format(*foods)
# i like eat fruit and fish and beef
print(s)
 
dict_temp = {'name': 'Lily', 'age': 18}
# 字典需要用 ** 进行拆分
s = 'My name is {name}, i am {age} years old'.format(**dict_temp)
print(s) # My name is Lily, i am 18 years old

总结

到此这篇关于python中format用法的文章就介绍到这了,更多相关python中format用法内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_42855293/article/details/118480087

延伸 · 阅读

精彩推荐
  • PythonPython常用内置模块之xml模块(详解)

    Python常用内置模块之xml模块(详解)

    下面小编就为大家带来一篇Python常用内置模块之xml模块(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Python教程网2832020-11-11
  • Pythonpython语音识别的转换方法

    python语音识别的转换方法

    语音识别技术,也被称为自动语音识别,目标是以电脑自动将人类的语音内容转换为相应的文字。应用包括语音拨号、语音导航、室内设备控制、语音文档...

    辉煌zzg7232022-02-11
  • PythonDjango中对数据查询结果进行排序的方法

    Django中对数据查询结果进行排序的方法

    这篇文章主要介绍了Django中对数据查询结果进行排序的方法,利用Python代码代替SQL进行一些简单的操作,需要的朋友可以参考下...

    Python教程网11952020-07-24
  • Pythonselenium+python设置爬虫代理IP的方法

    selenium+python设置爬虫代理IP的方法

    这篇文章主要介绍了selenium+python设置爬虫代理IP的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    Kosmoo7222021-04-23
  • Python整理Python中常用的conda命令操作

    整理Python中常用的conda命令操作

    今天给大家带来的是关于Python的相关知识,文章围绕着Python中常用的conda命令行操作展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下...

    找出幕后煮屎者10292021-12-01
  • PythonPython OpenCV实现图像傅里叶变换

    Python OpenCV实现图像傅里叶变换

    傅里叶变换,也称作傅立叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。本文将介绍如何通...

    小白YouCans13722022-08-30
  • Pythonpython编程控制Android手机操作技巧示例

    python编程控制Android手机操作技巧示例

    这篇文章主要为大家介绍了如何利用python编程来实现控制手机的操作技巧,文中含有各种操作的示例,有需要的朋友可以借鉴参考下...

    初遇我ㄖ寸の热情呢?7462022-01-19
  • PythonTensorFlow神经网络优化策略学习

    TensorFlow神经网络优化策略学习

    这篇文章主要介绍了TensorFlow神经网络优化策略,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    marsjhao9512021-01-20