Python: format格式化字符串详解
一、什么是格式化字符串?
格式化字符串是指,在定义字符串时,在字符串内部插入变量,使其能够根据不同的变量在输出时有不同的格式。
例如,在Python中,可以通过print()
函数输出字符串,如:
print("Hello, Python!")
输出结果为:
Hello, Python!
但是,如果我们要输出一个有变量的字符串时,这种方式就不再适用了。
例如,我们需要输出一个带有姓名和年龄的句子:
name = "Tom"
age = 22
print("My name is " + name + ", and I am " + age + " years old.")
这样的结果就会出现错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
因为name
是字符串类型,而age
是整数类型,无法直接拼接在一起。
二、格式化字符串的语法
Python提供了一个格式化字符串的语法,可以解决这个问题。
通过在字符串中插入占位符{}
的形式,表示此处要插入变量。然后在字符串后面调用format()
方法,将变量插入到占位符{}
中。
例如,我们可以将上述例子改为:
name = "Tom"
age = 22
print("My name is {}, and I am {} years old.".format(name, age))
输出结果为:
My name is Tom, and I am 22 years old.
三、格式化字符串的常用方式
1.使用位置参数
在插入变量时,可以使用位置参数,按照位置顺序在format
方法中传入变量。
例如:
print("My name is {0}, and I am {1} years old.".format(name, age))
输出结果为:
My name is Tom, and I am 22 years old.
2.使用关键字参数
在插入变量时,也可以使用关键字参数,在format
方法中通过变量名称传入变量。
例如:
print("My name is {n}, and I am {a} years old.".format(n=name, a=age))
输出结果为:
My name is Tom, and I am 22 years old.
3.使用变量名
在Python3.6及以上版本中,还可以使用变量名作为占位符,直接将变量名称放入占位符中,不需要调用format()
方法。
例如:
print(f"My name is {name}, and I am {age} years old.")
输出结果为:
My name is Tom, and I am 22 years old.
四、格式化输出的实际应用
格式化字符串的应用非常广泛,特别是在输出日志时非常有用。
例如:
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
logger.info('This is an information message.')
输出结果为:
2021-08-16 17:00:00,000 - __main__ - INFO - This is an information message.
五、总结
通过本文,我们了解了Python中格式化字符串的语法和常用方式,以及在实际应用中的使用技巧。格式化字符串可以让我们输出有格式的字符串,并且非常方便。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python:format格式化字符串详解 - Python技术站