输出和输入

您从编写第一行代码开始就会使用的两个工具:print() 在终端中显示值,input() 从用户获取文本。它们很简单,但了解它们的行为可以让您避免早期的一些惊喜。
Python 如何运行您的代码
Python 从上到下逐行运行您的代码,完全按照您编写的顺序。没有跳转。您编写的顺序就是它们运行的顺序。总是这样。
city = "北京"
print(city)
print("人口:2100万")首先 city 被赋值。第一个 print 运行。第二个 print 运行。每次都是这个顺序。
这很重要,因为您不能在赋值之前使用变量。Python 还没有看到它,会引发错误:
print(country) # NameError: 还没有定义 country
country = "中国"当您的程序增长时要牢记这一点:任何您使用的东西都必须在使用它之前定义。
NameError。没有跳过,也不是先读整个文件。 打印输出
print() 是 Python 与您沟通的方式。传给它任何值,它就显示那个值。它会自动将您给它的任何东西转换为文本。
print("Hello") # Hello
print(42) # 42
print(3.14) # 3.14
print(True) # True多个值
您可以通过用逗号分隔来一次打印多个值。Python 默认在它们之间放一个空格。使用 sep 改变分隔符:
name = "张三"
age = 28
print(name, age) # 张三 28
print("Name:", name) # Name: 张三
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, c控制行尾
每个 print() 调用默认以换行符结尾,所以下一个输出开始在新的一行。使用 end 改变那个。设置 end="" 使下一个 print 继续在同一行:
print("Loading", end="")
print("...")
# Loading...
print("one", end=" | ")
print("two", end=" | ")
print("three")
# one | two | threeprint() 将您给它的任何东西转换为文本并显示它。传递几个用逗号分隔的东西,您得到它们之间的空格,用 sep 改变那个。每个 print 在末尾掉到新的一行;end="" 保持下一个在同一行。 使用 f-string 格式化输出
构建消息的最简洁方式是 f-string。在开引号前放 f,然后在任何变量或表达式周围用花括号包装。Python 在运行时填充它。您可以在 {} 内放任何值、计算或方法调用。
name = "张三"
score = 980
# 连接:笨拙,需要 str() 进行数字
print("Player: " + name + ", Score: " + str(score))
# f-string: 可读,无需手动转换
print(f"Player: {name}, Score: {score}")您可以在 {} 内放任何表达式:算术、方法调用(像 .upper(),在字符串章节中完整覆盖)、格式规范:
price = 49.99
tax = 0.2
total = price * (1 + tax)
print(f"Total: {total:.2f}") # Total: 59.99
print(f"Name: {name.upper()}") # Name: 张三
print(f"2 + 2 = {2 + 2}") # 2 + 2 = 4: 后的格式规范控制值如何显示:
ratio = 0.8765
count = 1234567
label = "revenue"
print(f"{ratio:.1%}") # 87.6%
print(f"{count:,}") # 1,234,567
print(f"{label:>12}") # " revenue":.2f 意思是"两个小数位"。您会不断地为价格和测量使用它。其他一切在您需要时就在那里。主要的事情:任何东西都可以在 {} 内,不仅仅是变量名。
f 并在 {} 中包装任何东西:一个变量、一个和,甚至一个方法调用。冒号添加格式,像 :.2f 用于两个小数位。比用 + 粘合字符串整洁得多。 从用户获取输入
input() 暂停您的程序并等待用户键入东西。他们键入的任何东西(并按 Enter)都作为返回值回来。括号中的字符串是用户看到的提示。
name = input("你叫什么名字? ")
print(f"你好,{name}!")input() 总是返回一个字符串,无论用户键入什么。键入 42 您得到 "42",不是数字 42。要用它进行算术,显式转换:
age = int(input("你多大了? "))
print(f"十年后你会是 {age + 10}。")如果用户键入不能转换的东西怎么办?Python 抛出 ValueError。正确处理这个问题在文件和异常章节中覆盖。
input() 显示您的提示,等待一行,并总是作为 string 交回,即使他们键入一个数字。需要一个数字?在它进来时用 int() 或 float() 自己转换它,然后用正确的类型继续。 实践中
一个从用户输入个性化自己的测验:
name = input("你叫什么名字? ")
subject = input("哪个科目? ")
print(f"好吧,{name}。开始您的 {subject} 测验。")
print("祝您好运!")两个输入都作为字符串回来并直接进入 f-string。不需要转换因为您将它们用作文本,不是数字。

