使用Python中的format函数格式化字符串

作者:南平淘贝游戏开发公司 阅读:86 次 发布时间:2023-05-26 05:03:13

摘要:在Python中,有许多使用字符串的方式,例如,我们可以用单引号或双引号来定义字符串。然而,略微复杂一些的字符串处理,时常需要一些格式化。Python的“format函数”(其中涉及到的字符串处理方式)被设计为一种通用的字符串格式化方法,可以在特定的字符串上插入任意数据。此...

在Python中,有许多使用字符串的方式,例如,我们可以用单引号或双引号来定义字符串。然而,略微复杂一些的字符串处理,时常需要一些格式化。

使用Python中的format函数格式化字符串

Python的“format函数”(其中涉及到的字符串处理方式)被设计为一种通用的字符串格式化方法,可以在特定的字符串上插入任意数据。此外,它还提供了各种自定义选项,使得字符串处理更加有效。

下面我们将从如下几个方面来深入学习format函数的使用技巧:

1. 基本用法

2. 按指定顺序使用多个变量

3. 按名称使用多个变量

4. 格式化数字

5. 格式化日期和时间

6. 格式化货币

1. 基本用法

让我们从基本用法开始,来扫清format函数的概念和语法:

使用format函数,首先您必须准备一个含有索引的外部数据源或变量列表,然后将这些数据用{}包含在字符串中。随后,在这些占位符括号中插入您希望插入的值。

下面是一些简单的示例:

>>> output = "I like {}".format("Python")

>>> print(output)

I like Python

上述代码创建了一个字符串“output”,并使用了Python的format函数方法。显然,这个格式化字符串将Python作为一个占位符,并在字符串中插入该占位符的值("Python")。

需要注意的是,一次仅能替换一个值。例如,如果我们想将模板字符串中的“Python”替换为“Java Script”,我们仅需在这个模板字符串内的大括号中输入我们想要替换的值即可:

>>> output = "I like {}".format("Java Script")

>>> print(output)

I like Java Script

2. 按指定顺序使用多个变量

在谈到一次性处理多个变量时,format函数的语法相对复杂一些,但毕竟只是一个细微的改动。让我们看看如何一次性提交多个变量:

假设我们想编写一个用户界面,问用户的名字,年龄和地址,然后打印结果。下面是一个非常简单的例子,演示了如何用format函数一次性处理多个变量:

name = "Zed A. Shaw"

age = 35

height = 74 # inches

weight = 180 # lbs

eyes = 'Blue'

teeth = 'White'

hair = 'Brown'

print("Let's talk about {}".format(name))

print("He's {} inches tall.".format(height))

print("He's {} pounds heavy.".format(weight))

print("Actually that's not too heavy.")

print("He's got {} eyes and {} hair.".format(eyes, hair))

print("His teeth are usually {} depending on the coffee.".format(teeth))

print("If I add {}, {}, and {} I get {}.".format(age, height, weight, age + height + weight))

例如,这是运行上面代码之后所看到的输出:

Let's talk about Zed A. Shaw

He's 74 inches tall.

He's 180 pounds heavy.

Actually that's not too heavy.

He's got Blue eyes and Brown hair.

His teeth are usually White depending on the coffee.

If I add 35, 74, and 180 I get 289.

那么,上述代码是如何完成多个变量的格式化的呢?首先,在一个大括号内用逗号隔开所有变量,就会按照逗号隔开的顺序插入它们。例如,"{} {}"将分别将第一个和第二个变量的值插入大括号中。

注意,这里要格外注意:不需要知道第二个变量的类型,format函数的实现机理可以自行识别它。因此,这种技术可以应用于所有数值类型和其他Python数据类型。

3. 按名称使用多个变量

在前面提到的例子中,变量按顺序处理,而且可以通过阅读代码来验证每个变量的作用,这对于小程序可能够奏效。但是,对于更复杂的程序来说,将代码编写在某种方式之下,使其包含更多断言,可以大幅度提高代码的可读性。

这种可读性可以通过名称工具轻松地实现。这里,format函数提供了一个“领域限定语言”(Domain Specific Language,DSL),通过它可以轻松定义占位符名称。现在,看看我们如何实现通过名称调用的变量格式化(术语“field_name”中的任何字符都可以用字母替换)。

例如,我们可以像这样使用format函数将变量替换为字符串:

print("{name} wrote {book}".format(name="Swaroop", book="A Byte of Python"))

输出为:“Swaroop wrote A Byte of Python”。

但这里又有一个问题:如果要在非字符串值上使用该方法,会出现什么问题?如果我们将格式字符串“{length:10.2f}”与一个非浮点数据类型一起使用,就会出现异常。

解决方法很简单:在格式化字符串中加入“{!r}”,利用repr()函数来格式化变量。例如:

def missing_parameter(param):

return '{!r} parameter is required to complete this request.'.format(param)

>>> missing_parameter('foo')

"'foo' parameter is required to complete this request."

4. 格式化数字

格式化数字的一般方法是在大括号中添加格式说明符。例如:

>>> print('{:.3f}'.format(3.14159265359))

3.142

如上所示,最常用的格式说明符是“.Nf”,其中N代表希望结果中显示的小数位数。

此外,format函数还支持其他用于数字格式化的选项,这些选项可以在格式字符串和数据源之间以冒号“:”分隔。下面是一些常用的选项:

- {:,} 带有千位分隔符的数字(如,格式化成“1,234,567”)

- {:30d} 填充(即先写空格,后写数字)30个单位,再右对齐数字

- {:30} 填充(即先写空格,后写字符)30个单位,再右对齐字符

例如:

>>> print('{:,.1f}'.format(1234567.89))

1,234,567.9

>>> print('{:10.0f}'.format(3141592))

3141592

>>> print('{:30}'.format('hello'))

hello

5. 格式化日期和时间

Python中的日期和时间可以用datetime模块处理。datetime有两个常量,一个代表日期(date),另一个代表日期加上时间(time)。datetime还有一个数据类型叫做时间间隔(即两个日期和时间之差的数据类型,即timedelta)。有了这些变量,我们就可以轻松地对日期和时间进行格式化处理。

下面是一些格式化日期和时间的示例:

from datetime import datetime

# 把datetime转化成字符串

date_str = datetime.now().strftime('%Y-%m-%d')

time_str = datetime.now().strftime('%H:%M:%S')

print(date_str)

print(time_str)

# 把日期字符串转化成datetime

new_date = datetime.strptime('2019-01-31', '%Y-%m-%d')

print(new_date)

# 使用timedelta

from datetime import timedelta

one_day = timedelta(days=1)

yesterday = datetime.now() - one_day

print(yesterday)

输出示例如下:

2020-08-23

14:25:33

2019-01-31 00:00:00

2020-08-22 14:25:33.317283

6. 格式化货币

最后,format函数还能够实现货币格式化,但这可能需要安装locale库。如果您希望以特定的格式显示钱,请考虑使用locale库。

下面是一些货币格式化示例:

import locale

locale.setlocale(locale.LC_ALL, 'en_US.utf8')

print(locale.currency(1000.0, grouping=True))

print(locale.format('%d', 1234567, grouping=True))

print(locale.format_string('%s%.*f', (locale.currency(0, symbol=True), 2, 1234.567)))

输出示例如下:

$1,000.00

1,234,567

$1,234.57

总结

这就是format函数的基本进阶内容。格式化字符串的能力可以极大地提高代码的可读性,适用于许多应用程序,从字符串处理到数学计算。因此,学习这些格式化技术是Python程序员过程中的一项必要技能。

  • 原标题:使用Python中的format函数格式化字符串

  • 本文链接:https://qipaikaifa1.com/jsbk/7431.html

  • 本文由南平淘贝游戏开发公司小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与淘贝科技联系删除。
  • 微信二维码

    CTAPP999

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:189-2934-0276


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部