Python中format格式化的用法及说明

 更新时间:2024年02月07日 09:33:11   作者:NOOB-面具  
这篇文章主要介绍了Python中format格式化的用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

可以通过下面几种方式来实现

1、使用{}作为占位符,通过索引来指定要替换的参数,如:

# 替换第一个参数
"Hello {}, Welcome to Python world!".format("Tom")

# 替换第二个参数
"Hello {1}, Welcome to Python world! I'm {0}".format("Tom", "Alice")

2、使用{}作为占位符,通过参数名来指定要替换的参数,如:

# 替换name参数
"Hello {name}, Welcome to Python world!".format(name="Tom")

# 替换name和age参数
"Hello {name}, Welcome to Python world! I'm {age}".format(name="Tom", age=20)

3、使用{}作为占位符,通过指定参数位置和类型来进行格式化,如:

# 使用:指定参数类型和格式,d表示整数,f表示浮点数,s表示字符串
"Hello {0:s}, Welcome to Python world! I'm {1:d} years old".format("Tom", 20)
"Hello {0:s}, Welcome to Python world! I'm {1:f} meters tall".format("Tom", 1.75)

有以下几个注意事项

1、如果使用了{}作为占位符,那么参数中不能出现{}字符,否则会抛出异常,应该使用{{}}来表示{字符,如:

# 错误用法
"Hello {name}, Welcome to Python world! I'm from {{China}}".format(name="Tom")

# 正确用法
"Hello {name}, Welcome to Python world! I'm from {country}".format(name="Tom", country="China")

2、在format函数中,如果指定了参数名或位置,那么参数的顺序并不重要,如:

# 不同的参数顺序
"Hello {0}, Welcome to Python world! I'm {1} years old".format(20, "Tom")
"Hello {1}, Welcome to Python world! I'm {0} years old".format(20, "Tom")

3、在format函数中,如果使用了参数名或位置,那么在调用时,必须保证提供了对应的参数,否则会抛出异常,如:

# 错误用法,没有提供name参数
"Hello {name}, Welcome to Python world!".format()

# 正确用法
"Hello {name}, Welcome to Python world!".format(name="Tom")

4、在format函数中,如果没有使用参数名或位置,那么参数的顺序必须与占位符的顺序一致,否则会抛出异常,如:

# 错误用法,参数顺序不一致
"Hello {}, Welcome to Python world! I'm {} years old".format(20, "Tom")

# 正确用法
"Hello {}, Welcome to Python world! I'm {} years old".format("Tom", 20)

5、在format函数中,如果使用了参数名或位置,那么在调用时可以提供多余的参数,这些参数不会被使用,如:

# 提供了多余的参数
"Hello {name}, Welcome to Python world!".format(name="Tom", age=20)

6、在format函数中,可以使用**kwargs参数将一个字典中的所有键值对作为参数传递给format函数,如:

# 使用**kwargs传递参数
params = {"name": "Tom", "age": 20}
"Hello {name}, Welcome to Python world! I'm {age} years old".format(**params)

7、在format函数中,如果使用了{}作为占位符,那么可以使用format_map函数来替换占位符,其中format_map函数的参数必须是一个映射对象,如:

# 使用format_map函数替换占位符
params = {"name": "Tom", "age": 20}
"Hello {name}, Welcome to Python world! I'm {age} years old".format_map(params)

8、在format函数中,如果需要对字符串进行多次替换,那么可以使用format_map函数,它可以直接在字符串上调用,而不用重新创建一个新的字符串,如:

# 使用format_map函数进行多次替换
params = {"name": "Tom", "age": 20}
s = "Hello {name}, Welcome to Python world! I'm {age} years old"
new = s.format_map(params)
print(new)

# 更新参数,并继续替换
params["age"] = 21
new_2 = s.format_map(params)
print(new_2)

9、在format函数中,如果使用了{}作为占位符,那么可以使用vars函数自动将一个对象的属性作为参数传递给format函数,如:

# 使用vars函数自动将一个对象的属性作为参数传递给format函数
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Tom", 20)
"Hello {name}, Welcome to Python world! I'm {age} years old".format(**vars(p))

10、在format函数中,如果使用了{}作为占位符,那么可以使用Template类来实现字符串的模板化,可以通过$来指定参数名,并通过safe_substitute函数来替换占位符,如:

# 使用Template类实现字符串的模板化
from string import Template

s = Template("Hello $name, Welcome to Python world! I'm $age years old")
s.safe_substitute(name="Tom", age=20)

11、在format函数中,如果使用了{}作为占位符,那么可以通过f-string来实现字符串的替换,f-string必须使用Python3.6或更高版本,它支持在字符串中直接使用变量名,并通过{}包裹,如:

# 使用f-string实现字符串的替换
name = "Tom"
age = 20
f"Hello {name}, Welcome to Python world! I'm {age} years old"

12、在format函数中,如果需要对字符串进行格式化,那么可以使用format函数的相关参数,如align、width、precision等来控制字符串的对齐方式、宽度、精度等,如:

# 使用format函数的相关参数进行格式化
name = "Tom"
age = 20

# 左对齐,宽度为20,小数点后保留2位
"Hello {0:<20.2f}".format(name, age)

# 右对齐,宽度为20,小数点后保留2位
"Hello {0:>20.2f}".format(name, age)

# 居中对齐,宽度为20,小数点后保留2位
"Hello {0:^20.2f}".format(name, age)

13、在format函数中,如果需要对数字进行格式化,那么可以使用format函数的相关参数,如:

# 千分位分隔符
"{:,}".format(123456789)

# 百分数
"{:.2%}".format(0.8)

# 科学计数法
"{:.2e}".format(123456789)

# 十六进制
"{:x}".format(255)

14、在format函数中,如果需要对日期时间进行格式化,那么可以使用strftime函数来指定日期时间的格式化字符串,如:

# 使用strftime函数格式化日期时间
from datetime import datetime

dt = datetime.now()
print(dt)

a = dt.strftime("%Y-%m-%d %H:%M:%S")
print(a)

# 输出
# 2022-12-09 16:51:09.534693
# 2022-12-09 16:51:09

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • selenium3.0+python之环境搭建的方法步骤

    selenium3.0+python之环境搭建的方法步骤

    这篇文章主要介绍了selenium3.0+python之环境搭建的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Pycharm集成Gitee的使用方法

    Pycharm集成Gitee的使用方法

    本文主要介绍了Pycharm集成Gitee的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python基于yaml文件配置logging日志过程解析

    Python基于yaml文件配置logging日志过程解析

    这篇文章主要介绍了Python基于yaml文件配置logging日志过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • python与matlab一些常用函数互转问题

    python与matlab一些常用函数互转问题

    这篇文章主要介绍了python与matlab一些常用函数互转,包括十六进制字节流数据的相关知识,本文通过示例代码给大家讲解的非常详细,需要的朋友可以参考下
    2022-12-12
  • Python利用pdfplumber实现读取PDF写入Excel

    Python利用pdfplumber实现读取PDF写入Excel

    pdfplumber专注PDF内容提取,例如文本(位置、字体及颜色等)和形状(矩形、直线、曲线),还有解析表格的功能。本文主要为大家介绍如何利用pdfplumber实现读取PDF写入Excel,需要的可以参考一下
    2022-06-06
  • 详解Pycharm第三方库的安装及使用方法

    详解Pycharm第三方库的安装及使用方法

    这篇文章主要介绍了详解Pycharm第三方库的安装及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 使用pandas中的DataFrame数据绘制柱状图的方法

    使用pandas中的DataFrame数据绘制柱状图的方法

    下面小编就为大家分享一篇使用pandas中的DataFrame数据绘制柱状图的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python2.7环境Flask框架安装简明教程【已测试】

    Python2.7环境Flask框架安装简明教程【已测试】

    这篇文章主要介绍了Python2.7环境Flask框架安装方法,结合实例形式详细分析了Python2.7环境下安装Flask框架遇到的问题与相关解决方法、注意事项,并给出了一个基本的测试示例,需要的朋友可以参考下
    2018-07-07
  • windows及linux环境下永久修改pip镜像源的方法

    windows及linux环境下永久修改pip镜像源的方法

    不知道有没有人跟我一样,在刚接触Linux时被系统更新源问题搞得晕头转向,不同的Linux更新源配置也是不一样的,另外由于默认安装时的源大都是外国的更新源,速度相对国内会慢很多,接下来本文主要介绍在windows和linux两种系统环境中更新系统源的方法。
    2016-11-11
  • Python 3.11.0下载安装并使用help查看模块信息的方法

    Python 3.11.0下载安装并使用help查看模块信息的方法

    本文给大家介绍Python 3.11.0下载安装并使用help查看模块信息的相关知识,首先给大家讲解了Python 3.11.0下载及安装紧接着介绍了在命令行使用help查看模块信息的方法,感兴趣的朋友跟随小编一起看看吧
    2022-11-11

最新评论