Python字符串格式化输出语法汇总
在Python编程中,字符串格式化输出是一项非常基础但也非常重要的技能。Python提供了多种不同的字符串格式化方法,它们可以帮助我们更加方便地处理数据,同时也可以使输出看起来更加专业和规范。在本文中,我们将介绍Python字符串格式化输出的常用方法和语法,以及各个方法的使用场景和注意事项。
1. 使用百分号(%)进行字符串格式化
Python中,使用百分号(%)对字符串进行格式化输出是最基础的一种方法。它的语法形式如下:
print("格式化字符串" % 变量)
其中,格式化字符串是一个包含格式化字符的字符串,而变量则是要替换的变量。下面是一个例子:
name = "John"
age = 25
print("My name is %s and I am %d years old." % (name, age))
这个例子中,"%s"和"%d"是两个格式化字符,分别代表字符串和整数。我们利用百分号将变量name和age插入到相应的格式化字符中,最后得到输出结果"My name is John and I am 25 years old."。这种方法比较简单,但是不够灵活,因为它要求我们通过顺序来确定每个变量的位置。如果要格式化的变量比较多,或者顺序发生了变化,就比较麻烦了。
1.1. 字符串格式化字符
在使用百分号进行字符串格式化时,我们需要使用不同的格式化字符来指定变量的类型和对应的格式。下表中列出了Python中常用的格式化字符及其含义。
| 格式化字符 | 含义 |
| -------- | ----------- |
| %s | 字符串 |
| %d | 有符号整数 |
| %f | 浮点数 |
| %e | 科学计数法表示的浮点数 |
| %x | 16进制整数 |
| %o | 8进制整数 |
| %c | 单个字符 |
| %r | 字符串(含有特殊字符) |
1.2. 字符串格式化修饰符
除了格式化字符外,我们还可以使用修饰符来调整输出格式,使其更加规范和美观。下表列出了常用的字符串格式化修饰符及其含义。
| 修饰符 | 含义 |
| ------ | ------- |
| %m.nf | 设置浮点数的输出宽度和精度 |
| %-ns | 左对齐输出字符串 |
| %0ns | 补零输出字符串 |
| %+d | 显示正负号 |
| %2d | 设置输出的宽度为2 |
| %.2d | 设置输出的精度为2 |
1.3. 字符串格式化输出实例
下面展示一些常用的字符串格式化输出实例。
输出整数:
n = 8
print("n=%d" % n)
输出浮点数:
f = 3.1415926
print("f=%.2f" % f)
输出字符串:
name = "Tom"
print("My name is %s." % name)
左对齐输出字符串:
name = "Tom"
print("My name is %-10s." % name)
补零输出字符串:
age = 25
print("My age is %04d." % age)
2. 使用字符串的format()方法进行格式化
除了使用百分号进行字符串格式化输出外,Python还提供了另一个更加灵活和方便的方法,就是使用字符串的format()方法。它的语法形式如下:
print("格式化字符串".format(变量))
在上面的语法中,格式化字符串是一个带有花括号的字符串,表示需要被替换的部分,而变量则是要插入到花括号中的变量。下面来看一个例子:
name = "John"
age = 25
print("My name is {} and I am {} years old.".format(name, age))
这个例子与之前的例子非常类似,只不过我们使用了字符串的format()方法进行格式化。在格式化字符串中,我们用了一对花括号"{}"来表示需要插入的变量,然后在format()方法中传入变量即可,输出结果与之前的结果相同。这种方法相对于百分号方法来说,更加灵活,可以通过指定变量名来使得输出的变量位置不再受限于顺序。
2.1. format()方法的高级用法
除了插入普通变量以外,format()方法还可以接收各种不同的参数和格式化选项,从而实现更加强大的功能。下面是一些常用的format()方法的高级用法。
2.1.1. 指定参数顺序
在format()方法中,我们还可以通过指定参数的顺序来控制输出的位置。例如:
print("{1} {0}".format("world", "hello"))
这个例子中,我们使用了两个花括号,分别用于表示两个变量的位置。然后在format()方法中分别传入了"world"和"hello"两个变量,由于我们在花括号中分别指定了"world"的位置为1,"hello"的位置为0,因此输出结果为"hello world"。
2.1.2. 指定变量名
除了指定参数顺序以外,我们还可以通过指定变量名的方式来控制输出位置。例如:
print("My name is {name} and I am {age} years old.".format(name="John", age=25))
在这个例子中,我们使用了花括号和变量名的方式来表示需要插入的变量,并在format()方法中传入了相应的变量。这种方法相对于百分号方法来说,更加灵活和易读。
2.1.3. 指定输出宽度和对齐方式
在format()方法中,我们还可以通过指定输出宽度和对齐方式来控制输出格式。例如:
print("|{:10}|".format("hello"))
print("|{:>10}|".format("hello"))
print("|{:<10}|".format("hello"))
print("|{:^10}|".format("hello"))
这个例子中,我们分别使用了"<"、">"和"^"三种对齐方式,以及一个数字10来表示输出的宽度。输出结果如下:
```
|hello |
| hello|
|hello |
| hello |
```
2.1.4. 格式化数字类型变量
在format()方法中,我们还可以使用不同的格式化字符来格式化数字类型变量。例如:
print("{:d}".format(123))
print("{:x}".format(255))
print("{:o}".format(100))
print("{:b}".format(20))
这个例子中,我们分别使用了"d"、"x"、"o"和"b"四种格式化字符来分别表示十进制、十六进制、八进制和二进制格式。输出结果如下:
```
123
ff
144
10100
```
2.1.5. 格式化浮点数类型变量
在format()方法中,我们也可以使用不同的格式化字符来格式化浮点数类型的变量。例如:
print("{:.2f}".format(3.1415926))
print("{:e}".format(1000000))
这个例子中,我们使用了".2f"和"e"两种格式化字符来分别表示保留两位小数和科学计数法输出的格式。输出结果如下:
```
3.14
1.000000e+06
```
3. 使用f-string进行字符串格式化
从Python3.6版本开始,Python又引入了一种新的字符串格式化方法,就是使用f-string。它的语法形式非常简单,只需要在字符串前面加上字母"f",然后在花括号中插入变量即可。例如:
name = "John"
age = 25
print(f"My name is {name} and I am {age} years old.")
输出结果与上面使用format()方法的例子相同。使用f-string方法相对于之前的两种方法来说,更加简单、方便、易读,因此在实际开发中被广泛使用。
3.1. f-string的高级用法
除了插入普通变量以外,f-string还可以使用各种格式化选项来控制输出的精度、宽度、对齐方式等。下面是一些常用的f-string的高级用法。
3.1.1. 使用冒号指定格式化选项
在f-string中,我们可以使用冒号":"来指定各种不同的格式化选项,例如输出的精度、宽度、对齐方式等。例如:
f = 3.1415926
print(f"f={f:.2f}")
print(f"{'hello':>10}")
print(f"{'hello':<10}")
print(f"{'hello':^10}")
这个例子中,我们分别使用了".2f"、">"、"<"和"^"四种格式化选项来控制输出的精度、宽度和对齐方式。输出结果与之前使用format()方法的例子相同。
3.1.2. 在f-string中调用函数
在f-string中,我们甚至可以调用函数来进行一些复杂的操作。例如:
def add(a, b):
return a + b
x = 2
y = 3
print(f"Result: {add(x, y)}")
这个例子中,我们定义了一个简单的add函数,并在f-string中将其调用了一次,并输出了结果"Result: 5"。
结论
本文介绍了Python中常用的三种字符串格式化输出语法,分别是使用百分号、使用format()方法和使用f-string。其中,使用百分号的方法最为基础,但也最为限制和不灵活。使用format()方法的方法则相对灵活和方便,可以通过不同的格式化选项来控制输出格式。最后,使用f-string方法则是Python最新、最为方便、最易读的字符串格式化方法,是Python编程中不可或缺的一项技能。