一、基本概念
字符串格式化是指将指定的值插入到字符串中的指定位置,以生成最终的字符串。在Python中,字符串格式化采用字符串模板来实现,而字符串模板就是将某些位置标记为占位符,然后通过相应的参数来填充这些占位符。
在Python中,字符串格式化主要有两种方式:
- 使用百分号(%)进行格式化
- 使用.format()函数进行格式化
以下是使用百分号进行格式化的示例代码:
name = "Alice" age = 20 print("My name is %s, and I'm %d years old." % (name, age))
输出结果为:
My name is Alice, and I'm 20 years old.
以下是使用.format()函数进行格式化的示例代码:
name = "Bob" age = 25 print("My name is {}, and I'm {} years old.".format(name, age))
输出结果为:
My name is Bob, and I'm 25 years old.
二、格式化字符串
在Python 3.6中引入了一种新的字符串格式化方法,即格式化字符串(Formatted String)。格式化字符串允许在字符串前面加上一个‘f’或‘F’来指示这是一个格式化字符串,然后直接在字符串中使用大括号‘{}’来表示占位符。
以下是使用格式化字符串的示例代码:
name = "Charlie" age = 30 print(f"My name is {name}, and I'm {age} years old.")
输出结果为:
My name is Charlie, and I'm 30 years old.
三、占位符
在字符串格式化中,占位符(Placeholder)是用来表示需要填充的内容的特殊字符。在Python中,常见的占位符包括%s、%d、%f等。
1. %s 占位符
%s占位符表示字符串,可以接受任意类型的参数。以下是使用%s占位符的示例代码:
name = "David" print("My name is %s." % name)
输出结果为:
My name is David.
2. %d 占位符
%d占位符表示整数,以下是使用%d占位符的示例代码:
age = 35 print("I'm %d years old." % age)
输出结果为:
I'm 35 years old.
3. %f 占位符
%f占位符表示浮点数,以下是使用%f占位符的示例代码:
price = 12.99 print("The price is %f." % price)
输出结果为:
The price is 12.990000.
如果要控制小数点后的位数,可以在%f之后加上‘.n’,其中‘n’表示小数点后保留的位数。以下是使用%f占位符控制小数点后2位的示例代码:
price = 12.99 print("The price is %.2f." % price)
输出结果为:
The price is 12.99.
四、格式化操作符
在字符串格式化中,格式化操作符(Format Operator)是用来将占位符与参数进行绑定的符号。在Python中,格式化操作符是一个百分号(%)。
1. %s 格式化操作符
使用%s格式化操作符时,可以将占位符与任意类型的参数绑定。以下是使用%s格式化操作符的示例代码:
name = "Emily" print("My name is %s." % name)
输出结果为:
My name is Emily.
2. %d 格式化操作符
使用%d格式化操作符时,可以将占位符与整数类型的参数绑定。以下是使用%d格式化操作符的示例代码:
age = 40 print("I'm %d years old." % age)
输出结果为:
I'm 40 years old.
3. %f 格式化操作符
使用%f格式化操作符时,可以将占位符与浮点数类型的参数绑定。以下是使用%f格式化操作符的示例代码:
price = 9.99 print("The price is %f." % price)
输出结果为:
The price is 9.990000.
如果要控制小数点后的位数,可以在%f之后加上‘.n’,其中‘n’表示小数点后保留的位数。以下是使用%f格式化操作符控制小数点后2位的示例代码:
price = 9.99 print("The price is %.2f." % price)
输出结果为:
The price is 9.99.
五、字符串模板
字符串模板是Python中一种高级的字符串格式化方式,它允许在字符串中使用占位符,与具体的值绑定时使用大括号{},也支持格式化控制符。
1. 使用位置
使用位置时,通过为format()函数的参数编号来指定要绑定的参数。以下是使用位置的示例代码:
name = "Frank" age = 45 print("My name is {0}, and I'm {1} years old.".format(name, age))
输出结果为:
My name is Frank, and I'm 45 years old.
2. 使用关键字
使用关键字时,可以直接为format()函数的参数指定名称,而不必依赖于它们的位置。以下是使用关键字的示例代码:
name = "Grace" age = 50 print("My name is {name}, and I'm {age} years old.".format(name=name, age=age))
输出结果为:
My name is Grace, and I'm 50 years old.
3. 使用字符串模板的简化写法
在Python 3.6中,引入了f-string(Formatted String)的新特性,它可以让字符串模板的格式化操作更加简单。以下是使用f-string的示例代码:
name = "Harry" age = 55 print(f"My name is {name}, and I'm {age} years old.")
输出结果为:
My name is Harry, and I'm 55 years old.
六、总结
字符串格式化是Python中常用的功能之一,Python提供了多种字符串格式化方法,包括使用百分号、format()函数、格式化字符串以及字符串模板等。在使用字符串格式化功能时,我们需要根据实际的需求来选择不同的格式化方式,并结合掌握不同的占位符、格式化操作符以及字符串模板的使用方法。