Python Sprintf:Python 中的格式化字符串
没有确切的 sprintf
内置函数来打印格式化字符串,但由于 Python,存在许多方法来打印格式化字符串。
在本文中,我们将介绍 Python 中四个类似 sprintf 的功能,包括 % 运算符、format()、f-string 和用户定义的 sprintf 函数,让我们深入研究一下。
Python 中的格式化字符串
字符串格式化也称为字符串插值,我们可以在预定义文本中插入自定义值、字符串或变量。
它是打印字符串(包括一些值或结果)的首选且可读的方法之一,它为我们提供了 Python 中类似 sprintf 的功能。
我们还可以在格式化字符串中使用数学表达式。 例如,假设我们有两个值并希望将它们相加以打印最终结果。
代码示例:
x = 3
y = 4
print(f"The sum of {x} and {y} = {x+y}") # formatted string
print("The sum of",x,"and",y, "=", (x+y)) # normal string
输出:
The sum of 3 and 4 = 7
The sum of 3 and 4 = 7
正如我们所看到的,上面的结果是一样的,但是普通的字符串非常垃圾; 但是,格式化字符串的可读性更高,开发人员可以很容易地使用格式化字符串编写代码。
Python中格式化字符串的不同方法
Pythons 是一种通用编程语言,拥有多元化的开源社区和持续支持,可为开发人员提供解决方案和功能,以根据工作性质和特定场景以多种方式完成任何任务。
与使用格式化字符串类似,我们可以使用不同的方法来打印格式化字符串,我们将在本文中一一讨论。
使用 % 运算符格式化字符串
它是 Python 和其他编程语言中格式化字符串的旧技术之一。 在 Python 中,字符串具有使用 % 运算符访问的内置操作,使我们能够轻松地进行字符串格式化,类似于 C 和 C++ 中的 springf。
代码示例:
name = "Zeeshan Afridi"
msg = "Hey! developers, it's %s." %name
print(msg)
输出:
Hey! developers, it's Zeeshan Afridi.
在上面的代码中,%s
警告编译器我在末尾期待一个字符串,正如所演示的那样,我们已经将带有 %
运算符的字符串指定为 %name
。
字符串格式化中不同的数据类型有不同的格式说明符。
格式说明符 | 数据类型 | 输出 |
---|---|---|
%c | char | 它显示一个Unicode字符 |
%d | integer | 整数 |
%f | Floating point | 十进制数 |
%o | integer (octal) | 八进制数 |
%s | String | 它给出了一个字符串 |
%t | Date and Time | 数据和时间 |
在 Python 中使用 format() 函数格式化字符串
format()
是 Python 中格式化字符串的一种新方法,它是在 Python 3 中引入的。
这是一种格式化字符串的新样式,我们不需要记住格式说明符及其在字符串中的顺序; 相反,我们可以在字符串末尾使用 format()
并在指定位置提供参数。
代码示例:
program = "BSSE"
cgpa = 3.2
student = 'Hi! I am a student of {}, and my CGPA is {}'.format(program, cgpa)
print(student)
输出:
Hi! I am a student of BSSE, and my CGPA is 3.2
在上面的程序中,我们用大括号 {}
指定了要插入值的位置,在字符串 student 的末尾,我们使用了 .format()
函数并相应地给它两个参数。
Python 中的格式化字符串文字 f-string
格式化字符串文字也称为 f-string,它作为一种新的字符串格式化方法包含在 Python 3.6 中,其语法更具可读性和直接性。
f-string 有一个其他方法所没有的优秀和独特的特性,我们可以在字符串内部定义表达式和值。
不需要在字符串末尾使用 .format() 。 下面让我们看一个 Python 中的 f-String 示例。
代码示例:
my_fav_lang = "Python"
experience = 2
zeeshan = f'I love to code in {my_fav_lang}, and I have {experience} year experience in Python programming.'
print(zeeshan)
输出:
I love to code in Python, and I have 2 years of experience in Python programming.
f-string 超级简单易读。 与其他两种方法不同,我们不需要使用任何其他方法或逗号,只需使用 f 作为字符串的前缀,我们就可以开始了。
如何在 Python 中使用 sprintf
sprintf 代表字符串打印; 基本上,它是 C 和 C++ 编程语言中的一个内置函数,用于打印格式化字符串,并将输出存储在 sprintf() 指定的字符缓冲区中。 在 Python 中有不同但相似的方式。
sprintf 不是 Python 中的用户定义函数,但我们可以使用 StringIO 实例作为缓冲区。 与 sprintf 不同的是,我们必须将字符串传递给 buf.write 和格式化方法。 在这种情况下,% 用于字符串格式化。
代码示例:
import io
from io import StringIO
def sprintf(buf, fmt, *args):
buf.write(fmt %args)
age = 24
fav_color = "Blue"
buf = io.StringIO()
sprintf(buf, "I'm %d years old, and my favourite colour is %s!", age, fav_color)
print(buf.getvalue())
输出:
I'm 24 years old, and my favourite colour is Blue!
如果您收到此程序的任何 ImportError
,请从命令行界面 (CLI) 安装所需的依赖项。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串