5.2 输入与输出格式化

在 Python 中,输入和输出格式化是一项重要的技能,它可以帮助你更好地与用户进行交互,以及更有效地展示数据。本节将介绍如何使用字符串格式化、f-string 和其他方法来实现输入和输出格式化。我们将通过实例代码详细讲解每个知识点。

5.2.1 字符串格式化

Python 提供了几种方法来格式化字符串。以下是一些常用的方法:

1. 使用 % 运算符

% 运算符用于格式化字符串,类似于 C 语言中的 printf() 函数。以下是一个示例:

name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))

在这个示例中,我们使用 %s 和 %d 作为占位符,分别表示字符串和整数。然后,我们使用 % 运算符将 name 和 age 变量插入到字符串中。

2. 使用 str.format() 方法

str.format() 方法是一种更现代的字符串格式化方法。以下是一个示例:

name = "Alice"
age = 30
print("My name is {} and I am {} years old.".format(name, age))

在这个示例中,我们使用 {} 作为占位符,并通过 format() 方法将 name 和 age 变量插入到字符串中。

5.2.2 使用 f-string

f-string(格式化字符串字面量)是 Python 3.6 及更高版本中引入的一种新的字符串格式化方法。它使得字符串格式化更加简洁和易读。以下是一个示例:

name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")

在这个示例中,我们使用 {} 作为占位符,并将变量名称直接放入占位符中。这使得代码更加简洁和直观。

5.2.3 输入格式化

在 Python 中,我们可以使用 input() 函数获取用户输入。input() 函数可以接受一个参数,用于显示提示信息。以下是一个示例:

name = input("Please enter your name: ")
age = int(input("Please enter your age: "))
print(f"Your name is {name} and you are {age} years old.")

在这个示例中,我们使用 input() 函数获取用户输入的姓名和年龄。请注意,input() 函数返回的是一个字符串,所以我们需要使用 int() 函数将年龄转换为整数。

5.2.4 输出格式化

我们可以使用上面介绍的字符串格式化方法来控制输出的格式。以下是一些常用的格式化选项:

1. 设置宽度和对齐

我们可以使用 :width 选项设置字段宽度。以下是一个使用 f-string 的示例:

x = 42
y = 3.1415926
print(f"x: {x:5} | y: {y:10.2f}")

在这个示例中,我们设置了 x 字段的宽度为 5,y 字段的宽度为 10,以及 y 字段的小数位数为 2。

2. 数字格式化

我们还可以使用 , 选项将数字格式化为带有千位分隔符的字符串。以下是一个使用 f-string 的示例:

number = 1000000
print(f"Number with thousand separator: {number:,}")

在这个示例中,我们使用 , 选项将数字 1000000 格式化为带有千位分隔符的字符串 1,000,000

5.2.5 小结

我们已经介绍了 Python 中的输入和输出格式化,包括:

  • 字符串格式化方法(% 运算符、str.format() 方法和 f-string)
  • 输入格式化(使用 input() 函数获取用户输入)
  • 输出格式化(设置宽度和对齐,以及数字格式化)

以下是一些练习题,以帮助你巩固所学的知识:

  1. 编写一个程序,提示用户输入两个整数,然后计算它们的和、差、乘积和商,并以易读的格式输出结果。
  2. 编写一个程序,提示用户输入他们的姓名、年龄和职业,然后以以下格式输出信息:
Name:   [name]
Age:    [age]
Job:    [job]
  1. 编写一个程序,提示用户输入一个浮点数,然后将其转换为百分比形式(保留两位小数),并以易读的格式输出结果。

请尝试自己编写这些程序,并在遇到问题时参考本节的内容。通过这些练习,你将更好地理解并掌握 Python 的输入和输出格式化。
推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

file

你可能感兴趣的:(人工智能)