正在加载...

错误

有些行走不到头。Python 停在那一行,并且给这次停住起一个名字。8 / 2 走得到头:两个人分 8,每人得四。1 / 0 走不到头:没有人可以收下这 1。这次停住的名字是 ZeroDivisionError。

两人分到四,然后在 rice 之前停住

python
print(8 / 2)
print(1 / 0)
print("rice")

屏幕上先是 4.0,然后程序停住。4.0 就是四,带一个小数点,因为这种除法把数写成这样。rice 没有被写出来。停住之后的那一行不会运行。

名字在消息的末尾。ZeroDivisionError 表示这一行用零做了除数。另一种问题会有另一个名字。靠名字才能把问题分开。

如果名字 tea 从没得到过一个值,print(tea) 会停住。这次停住的名字是 NameError。print("tea") 是另一行:引号把它变成文字,那段文字会被写出来。没有引号时,Python 是在找一个名字。

Python 不会编一个值再往下走。它不会先写出 None,然后再写 rice。这次停住就是这个程序的结尾。

📊 哪一种停住,或者根本不停

写法 会发生什么
1 / 0 程序停住,名字是 ZeroDivisionError
print(tea),而且 tea 从没得到过值 程序停住,名字是 NameError
8 / 2 写出 4.0,程序不停
1 / 0 之后的 print("rice") 那一行不会运行

除法本身是可以的。8 / 2 写出 4.0,并不停住。让第二行停住的,是斜线右边的那个零。

下一页会接住一次停住,后面的行仍然可以运行。这一页只读停住的名字。

这次停住叫什么

  1. 程序停住之前写出了什么?
  2. 1 / 0 这次停住的名字是什么?
  3. print("rice") 会怎样?
  4. 写成 print(tea),而 tea 从没得到过值,停住的名字是什么?
  5. 8 / 2 做什么?

两个名字,两种问题

屏幕先是 4.0,然后程序停住。rice 没有被写出来。1 / 0 的名字是 ZeroDivisionError。从没得到过值的名字是 NameError。8 / 2 不停。下一页接住停住,后面的行仍然可以运行。

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
6
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部