来详细讲解一下“浅谈Python 字符串格式化输出(format/printf)”。
什么是字符串格式化输出?
在Python中,数字和字符串在输出时经常需要被格式化,以便更易于阅读和使用。Python使用两种格式化输出的方法:format()方法和旧式的%操作符。
format()方法
format()方法使用大括号 {} 来表示待插入的参数,然后尾随一个.format()方法,该方法包含所有参数。参数可以是数字、字符串、列表、元组等任何Python对象。下面是一个简单的示例:
name = "Jack"
age = 25
print("My name is {} and I am {} years old".format(name, age))
输出结果为:
My name is Jack and I am 25 years old
上面的代码中,大括号 {} 用于占位,name和age指定了待插入的参数,.format()方法用于格式化输出。
除了这种基本的方式,还可以对输出值进行格式控制。比如,可以显示任意精度的浮点数,设置左右对齐方式等等。以下是一个复杂的示例:
quantity = 3
item_id = 567
price = 49.95
print("Order number {0}: {1} quantity {2} items at ${3:.2f} each".format(item_id, quantity, price, round(price, 2)))
输出结果为:
Order number 567: 3 quantity items at $49.95 each
在这个例子中,数字和浮点数以及字符串都被格式化后输出,其中浮点数的小数点被控制为只显示2位。
除此之外,还可以通过位置和关键字来指定参数。以下是一个示例:
print("The {food} is {adjective}.".format(
food="spam", adjective="absolutely horrible"))
print("The {0} is {adjective}.".format("spam", adjective="absolutely horrible"))
输出结果为:
The spam is absolutely horrible.
The spam is absolutely horrible.
旧式的%操作符
%操作符与旧式C语言中printf()的使用类似。%操作符也使用占位符来表示待插入的参数,不过占位符是以%开始,后面跟着一个字母,比如%s代表字符串,%d代表整数。以下是一个示例:
name = "Jack"
age = 25
print("My name is %s and I am %d years old" % (name, age))
输出结果为:
My name is Jack and I am 25 years old
除了%s和%d之外还有其他占位符,稍后我们会介绍。(注意:%操作符后加一个小括号,其中为要替换的参数)
字符串格式化输出的应用场景
- 数据库操作:避免SQL注入,格式化字符串输出用于填充SQL语句。
- 文本文件处理:格式化输出用于把文本文件规范化或拼凑成需要的格式。
- 网络编程:用于把字符串格式化成需要的数据包,或把接收到的数据包解析成字符串并输出。
这只是三种应用场景中的部分,实际使用范围还远远不止这些。
总结
格式化输出是Python中必须掌握的一个知识点。Python提供了两种方式来进行格式化输出,一种是format()方法,另外一种是旧式的%操作符。通过这两种方法,我们可以方便地对数据进行格式化输出,使输出的数据更易于阅读和使用。
下面再给出一个%操作符的示例:
print("My name is %s and I am %d years old. I have $%f in my bank account." % ("Jack", 25, 26847.88))
输出结果为:
My name is Jack and I am 25 years old. I have $26847.880000 in my bank account.
在这个例子中,%s代表字符串,%d代表整数,%f代表浮点数。需要注意的是,浮点数的默认小数位数为6位,可以使用%.nf的方式来指定小数位数,其中n为数字。
好了,以上就是关于字符串格式化输出(format/printf)的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈Python 字符串格式化输出(format/printf) - Python技术站