Python字符串格式化输出语法汇总

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编程中不可或缺的一项技能。

后端开发标签