错误
有些行走不到头。Python 停在那一行,并且给这次停住起一个名字。8 / 2 走得到头:两个人分 8,每人得四。1 / 0 走不到头:没有人可以收下这 1。这次停住的名字是 ZeroDivisionError。
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 / 0 这次停住的名字是什么?
- print("rice") 会怎样?
- 写成 print(tea),而 tea 从没得到过值,停住的名字是什么?
- 8 / 2 做什么?
两个名字,两种问题
屏幕先是 4.0,然后程序停住。rice 没有被写出来。1 / 0 的名字是 ZeroDivisionError。从没得到过值的名字是 NameError。8 / 2 不停。下一页接住停住,后面的行仍然可以运行。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部