基础 · #1 / 11

变量、类型与输入/输出

名字、类型转换与用户输入

为什么重要

你在 Python 中修复的每一个 bug,都始于理解类型、名字和输入/输出。

核心思想

变量是贴在对象上的标签。你随时可以重新贴标签,但对象本身保持不变——而且对象始终携带着它自己的类型。

试一试

type() 是你最快的调试器。当数字表现得像字符串(或反过来)时,type() 会告诉你原因。

age = 25
height = 5.9
name = "Ada"
is_engineer = True
print(age, type(age).__name__)
print(height, type(height).__name__)
print(name, type(name).__name__)
print(is_engineer, type(is_engineer).__name__)
not loaded

input() 永远返回一个字符串。在做数学运算之前先做类型转换——否则会得到 "2" + "3" == "23"

# input() blocked in Pyodide — pretend the user typed "42"
raw = "42"
print("raw:", raw, type(raw).__name__)
n = int(raw)
print("n*2 =", n * 2)

# What happens if you forget to cast?
try:
  print(raw + 1)
except TypeError as e:
  print("TypeError:", e)
not loaded

快速检查

小练习

常见错误

关键要点