您的位置:

Python 格式化字符串详解

在Python编程中,格式化字符串是一个非常重要的概念。它允许我们按照一定的格式输出字符串,使得代码可读性更高、更易于维护。

一、基本用法

Python提供了多种格式化字符串的方法,其中最基础的方式就是使用占位符。例如:

name = "John"
age = 25
print("My name is %s. I am %d years old." % (name, age))

上述代码使用%s和%d作为占位符,分别代表字符串和整数类型。当我们调用print函数时,在字符串中对应的占位符会被后面传递的变量值所替换。

除了%s和%d,Python还支持其他三种占位符:

  • %f:浮点数
  • %x:十六进制数
  • %o:八进制数

例如:

pi = 3.14159
print("The value of pi is %f" % pi)

除了使用占位符,Python还支持使用大括号 {} 和 format() 函数的方式格式化字符串。例如:

name = "John"
age = 25
print("My name is {}. I am {} years old.".format(name, age))

使用大括号和format函数来格式化字符串可以使代码更加简洁易懂。

二、对齐方式

在格式化字符串时,我们还可以使用各种对齐方式。可以通过在占位符中添加符号来实现,其中:

  • “<”:左对齐
  • “>”:右对齐
  • “^”:居中对齐

例如:

score1 = 70
score2 = 90
print("Score1: {:<5} Score2: {:>5}".format(score1, score2))

上述代码中,使用“<”和“>”符号实现对齐方式,数字 5 表示对齐后的宽度。

三、进制转换和科学计数法

除了基础用法和对齐方式,Python格式化字符串功能还支持在输出数值时进行进制转换和科学计数法表示

例如:

n = 100
print("Binary: {:b}, Hexadecimal: {:x}, Octal: {:o}".format(n, n, n))
print("Scientific notation: {:e}".format(123456789))

上述代码中使用“{:b}”、“{:x}”、“{:o}”分别表示十进制数的二进制、十六进制、八进制形式,使用“{:e}”表示科学计数法表示。

四、结合字典

在实际编码中,我们经常需要将字典类型的数据输出为字符串。因此,Python允许我们在格式化字符串时使用字典类型的数据。

例如:

person = {'name': 'John', 'age': 25}
print("My name is {name}. I am {age} years old.".format(**person))

我们可以使用“**”操作符将字典转换为关键字参数并通过 format() 函数输出。

五、使用 f-string

从Python 3.6开始,Python还支持使用f-string这一新的语法糖来格式化字符串。

例如:

name = "John"
age = 25
print(f"My name is {name}. I am {age} years old.")

f-string格式化字符串功能非常强大,支持使用表达式、函数等。(需要注意的是,Python 3.6 以下的版本不支持 f-string 语法。)

六、总结

本文对Python格式化字符串功能进行了详细阐述。通过例子的讲解,我们了解了格式化字符串占位符、对齐方式、进制转换和科学计数法表示、结合字典以及使用f-string等多种用法。在实际编码中,根据需求选择不同的格式化字符串方式,能够大大提高代码的可读性和代码的易维护性。