Python中的字符串格式化

引子

众所周知,我们可以使用 print() 方法来输出一个固定内容的字符串,就像是 print("Hello, world!") 一样。但是,在现实中,我们很多时候是需要输出一些内容不断变化,或者内容动态生成的字符串,例如,我们不再输出 “Hello, world!”,而是输出 “Hello, Mike!” 或者 “Hello, Tom!”。

这个时候我们该怎么做呢?

本文将介绍如何按照需要,在Python中格式化一个字符串。

“string.format()”方法

在Python中,有几种格式化字符串的方法,包括 % 格式化方法、str.format() 方法和最近在Python 3.6中引入的 f-strings 方法(也称为格式化字符串字面量)。每种方法都有其自己的优点和缺点,但它们都可以用于格式化字符串。

在Python 3.6版本之前,我们推荐使用 str.format() 方法格式化字符串。该方法通过将字符串中的占位符替换为值来格式化字符串。该方法具有多个可选参数,允许开发人员自定义输出的格式。

str.format() 方法的基本语法为:

string.format(value1, value2, ...)

其中,string 是我们要格式化的字符串,value1value2 等是要替换到字符串中的占位符的值。

字符串中的占位符由成对的大括号 {} 表示。在大括号内部,我们可以使用格式说明符来控制被替换的值的格式。

以下是一些常用的格式说明符:

  • {}

    这是最简单的格式说明符,它只是原样替换值。

  • {:<N}

    这个说明符将值左对齐,并在右侧填充空格,以达到总宽度N。

  • {:>N}

    这个说明符将值右对齐,并在左侧填充空格,以达到总宽度N。

  • {:^N}

    这个说明符将值居中,并在两侧填充空格,以达到总宽度N。

  • {:.Nf}

    这个说明符将浮点数格式化为N位小数。

  • {:.Ng}

    这个说明符将数字格式化为N位有效数字。

  • {:.N%}

    这个说明符将浮点数格式化为带有N位小数的百分比。

除了这些格式说明符外,str.format()方法还支持许多其他参数:

  • sep

    指定在连接多个值时要使用的分隔符字符。

  • end

    指定要附加到输出结尾的字符串。

  • file

    指定要将输出写入的文件对象。

  • flush

    指定在写入输出后是否刷新输出缓冲区。

下面,我们来看几个使用 str.format() 方法格式化字符串的例子:

>>> name = "Alice"
>>> age = 30
>>> print("My name is {} and I am {} years old.".format(name, age))
My name is Alice and I am 30 years old.

你也可以通过给参数命名来替换占位符,例如:

>>> print("My name is {name} and I am {age} years old.".format(name=name, age=age))
My name is Alice and I am 30 years old.

你还可以重复使用相同的参数,例如:

>>> print("My name is {name} and I am {age} years old. I repeated my name {name}".format(name=name, age=age))
My name is Alice and I am 30 years old. I repeated my name Alice

我们还是可以尝试使用更复杂一点的参数,例如:

>>> x = 12345.6789
>>> y = 98765.4321
>>> message = "x = {:.2f}, y = {:.2f}".format(x, y)
>>> print(message)
x = 12345.68, y = 98765.43

在这个示例中,我们使用 str.format() 方法来格式化两个浮点数 xy。我们使用 :.2f 格式说明符,将数字格式化为两位小数。

一般来说,在Python 3.6版本之前,我们都推荐使用 string.format() 方法来格式化字符串。

“f-string”语法

在Python 3.6及更高版本中,Python提供了一种称为 f-string (也叫 f-stringsf-interpolation) 的新语法,可以更简单地格式化字符串。

f-string 的语法是通过在字符串前面加上一个前缀 fF,然后在字符串中插入表达式的方式来格式化字符串。表达式需要用大括号 {} 括起来。

例如,你可以使用以下代码格式化字符串:

>>> name = "Alice"
>>> age = 30
>>> print(f"My name is {name} and I am {age} years old.")
My name is Alice and I am 30 years old.

你还可以在表达式中调用函数或运算符,例如:

>>> import math
>>> print(f"2*2={2*2}, pi={math.pi}")
2*2=4, pi=3.141592653589793

也可以通过在表达式的后面添加一个冒号和格式说明符来格式化输出,例如,你可以使用以下语法来保留小数点后两位:

>>> print(f"The value of pi is approximately {math.pi:.2f}.")
The value of pi is approximately 3.14.

你还可以使用冒号和格式说明符来指定字符串的对齐方式、宽度和其他格式选项。

例如,你可以使用以下语法来左对齐一个字符串,并在右侧填充空格以达到指定宽度:

>>> name = 'Alice'
>>> print(f"{name:<10}")
Alice    

str.format() 方法类似,f-string 方法也可以使用若干格式说明符来指定格式:

  • :d:i 转换为有符号十进制整数;
  • :o 转换为无符号八进制整数;
  • :x, :X 转换为无符号十六进制整数,x 表示小写,X 表示大写;
  • :e, :E 转换为科学计数法,e 表示小写,E 表示大写;
  • :f, :F 转换为十进制浮点数,f 表示小写,F 表示大写;
  • :g, :G 转换为十进制浮点数,尽量使用科学计数法,g表示小写,G 表示大写;
  • :% 转换为百分数;
  • :c 转换为字符;
  • :s 转换为字符串;

如果你需要在字符串中插入大括号,可以使用双大括号 {{}},这样Python就会将它们当作普通字符而不是占位符:

>>> print(f"{{name}} is a placeholder")
{name} is a placeholder

你还可以使用 f-string 格式化字典对象:

>>> person = {'name': 'Alice', 'age': 30}
>>> print(f"My name is {person['name']} and I am {person['age']} years old.")
My name is Alice and I am 30 years old.

目前,f-string 是Python中最简单,最快,也是最常用的字符串格式化方式,我们推荐开发人员在Python 3.6及以上版本中使用。

总结

在Python开发中,格式化字符串是一种重要的技术,可以用于动态创建包含变量、表达式和其他数据的字符串。它允许开发人员通过将字符串的某些部分替换为变量、表达式或其他字符串的值来构造复杂的字符串。

在Python中,目前有三种主要的格式化字符串方法,包括 % 格式化方法、str.format() 方法和 f-strings 方法。我们推荐开发人员在Python 3.6及以上版本中使用 f-string 方法来格式化字符串。

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉 CSDN大礼包:gift::[全网最全《Python学习资料》免费赠送:free:!](https://blog.csdn.net/weixin_68789096/article/details/132275547?spm=1001.2014.3001.5502) (安全链接,放心点击)

若有侵权,请联系删除

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python字符串格式化是一种将变量或表达式嵌入到字符串的方法,使其更具可读性和灵活性。有几种方式可以实现字符串格式化: 1. 使用百分号(%)操作符:这是一种传统的字符串格式化方法。你可以使用%来指定插入变量的位置,并在字符串内部使用占位符来表示变量的类型。例如: ```python name = "Alice" age = 25 print("My name is %s and I am %d years old." % (name, age)) ``` 2. 使用str.format()方法:这是一种更现代化和灵活的字符串格式化方法。你可以在字符串使用大括号{}作为占位符,并使用format()方法将变量传递给字符串。例如: ```python name = "Alice" age = 25 print("My name is {} and I am {} years old.".format(name, age)) ``` 3. 使用f-strings(在Python 3.6及更高版本可用):f-strings是一种简洁和直观的字符串格式化方法。它们以字母"f"开头,并在大括号{}使用变量或表达式。例如: ```python name = "Alice" age = 25 print(f"My name is {name} and I am {age} years old.") ``` 无论你选择使用哪种方法,都可以在占位符添加格式说明符,例如指定数字的精度或对齐方式。这些格式说明符的语法与C语言的printf函数类似。 除了上述方法外,还有其他一些库和工具可用于字符串格式化,例如Template模块、字符串插值库等。但上述提到的方法是Python内置的且最常用的。希望这可以回答你的问题!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值