.format是Python中常用的字符串格式化方法,它可以将变量插入到字符串中,从而生成新的字符串。在Python3中,.format已经成为了最主流的字符串格式化方法,取代了早期的%格式化方法。.format方法的基本用法如下:
`python
_x000D_print("My name is {}, I am {} years old.".format("Tom", 25))
_x000D_ _x000D_这段代码输出的结果是:
_x000D_ _x000D_My name is Tom, I am 25 years old.
_x000D_ _x000D_在这个例子中,我们使用.format方法将两个变量插入到字符串中。在字符串中,我们使用一对大括号{}来表示一个占位符,然后在.format方法中传入对应的变量。在.format方法中,传入的变量会按照顺序依次替换字符串中的占位符。
_x000D_.format方法还支持更多的高级用法,下面我们将逐一介绍。
_x000D_按顺序传入变量
_x000D_在上面的例子中,我们是按照顺序依次传入变量的。如果我们想要传入的变量不按照顺序,可以使用大括号中的数字来指定占位符的位置,如下所示:
_x000D_`python
_x000D_print("My name is {1}, I am {0} years old.".format(25, "Tom"))
_x000D_ _x000D_这段代码输出的结果和之前的例子一样:
_x000D_ _x000D_My name is Tom, I am 25 years old.
_x000D_ _x000D_在这个例子中,我们使用了大括号中的数字来指定占位符的位置,数字从0开始计数。
_x000D_按名称传入变量
_x000D_除了按顺序传入变量,.format方法还支持按名称传入变量。在字符串中,我们可以使用一对大括号{}来表示一个占位符,然后在大括号中加上变量的名称,如下所示:
_x000D_`python
_x000D_print("My name is {name}, I am {age} years old.".format(name="Tom", age=25))
_x000D_ _x000D_这段代码输出的结果和之前的例子一样:
_x000D_ _x000D_My name is Tom, I am 25 years old.
_x000D_ _x000D_在这个例子中,我们使用了大括号中的变量名称来指定占位符的位置。在.format方法中,我们可以按照名称传入变量,变量的名称需要和字符串中的占位符名称一致。
_x000D_使用变量的属性和方法
_x000D_在.format方法中,我们可以使用变量的属性和方法来格式化字符串。例如,我们可以使用字符串的.upper()方法将字符串转换为大写字母,如下所示:
_x000D_`python
_x000D_name = "Tom"
_x000D_print("My name is {}.".format(name.upper()))
_x000D_ _x000D_这段代码输出的结果是:
_x000D_ _x000D_My name is TOM.
_x000D_ _x000D_在这个例子中,我们使用了字符串的.upper()方法将字符串转换为大写字母,然后将其作为变量传入到.format方法中。
_x000D_使用特定格式的变量
_x000D_在.format方法中,我们可以使用特定格式的变量来格式化字符串。例如,我们可以使用{:d}来表示整数,使用{:f}来表示浮点数,使用{:s}来表示字符串,如下所示:
_x000D_`python
_x000D_age = 25
_x000D_height = 1.75
_x000D_name = "Tom"
_x000D_print("My name is {0:s}, I am {1:d} years old and {2:.2f} meters tall.".format(name, age, height))
_x000D_ _x000D_这段代码输出的结果是:
_x000D_ _x000D_My name is Tom, I am 25 years old and 1.75 meters tall.
_x000D_ _x000D_在这个例子中,我们使用了{:s}来表示字符串,{:d}来表示整数,{:f}来表示浮点数,并使用:.2f来表示保留两位小数。
_x000D_问答扩展
_x000D_1. .format方法和%格式化方法有什么区别?
_x000D_.format方法和%格式化方法都可以用来格式化字符串,但是.format方法更加灵活、易读、易用。.format方法支持按顺序传入变量、按名称传入变量、使用变量的属性和方法、使用特定格式的变量等高级用法,而%格式化方法只支持按顺序传入变量和使用特定格式的变量。
_x000D_2. .format方法中的占位符可以使用多次吗?
_x000D_可以使用。在.format方法中,我们可以使用相同的占位符多次,例如:
_x000D_`python
_x000D_print("{0} {1} {0}".format("hello", "world"))
_x000D_ _x000D_这段代码输出的结果是:
_x000D_ _x000D_hello world hello
_x000D_ _x000D_在这个例子中,我们使用了{0}和{1}两个占位符,其中{0}被使用了两次。
_x000D_3. .format方法和f-string有什么区别?
_x000D_f-string是Python 3.6引入的一种字符串格式化方法,它使用一对大括号{}来表示一个占位符,并在大括号中加上变量的名称或表达式。f-string相比于.format方法,更加简洁、易读、易用,但是只能在Python 3.6及以上版本中使用。例如:
_x000D_`python
_x000D_name = "Tom"
_x000D_age = 25
_x000D_print(f"My name is {name}, I am {age} years old.")
_x000D_ _x000D_这段代码输出的结果和之前的例子一样:
_x000D_ _x000D_My name is Tom, I am 25 years old.
_x000D_ _x000D_在这个例子中,我们使用了f-string将变量插入到字符串中。f-string中的变量可以直接在大括号中使用,不需要在.format方法中传入变量。
_x000D_