《Python语言程序设计》——1.8 程序设计错误

简介:

本节书摘来自华章计算机《Python语言程序设计》一书中的第1章,第1.8节,作者:[美]梁勇(Y. Daniel Liang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.8 程序设计错误

关键点:程序设计错误可以分为三类:语法错误、运行时错误和逻辑错误。
1.8.1 语法错误
你会遇到的大多数常见错误都是语法错误。就像任何一种程序设计语言一样,Python也有自己的语法,你需要遵从语法规则编写代码。如果你的程序违反了这些规则——例如:忘写一个引号或者拼错一个单词——Python将会报告语法错误。
语法错误来自代码构建过程中的错误,例如:敲错了一条语句,不正确的缩进,忽略某些必需的标点符号,或者使用了左括号而忘了右括号。这些错误通常很容易被检测到,因为Python会告诉你这些错误在哪里以及是什么原因造成了这些错误。例如:下面的print语句有一个语法错误:


<a href=https://yqfile.alicdn.com/9a09cc644e1432d7308f1db223fa4defcb02257d.png
" >

字符串“Programming is fun”少了右引号。
提示:如果你不知道如何更正语法错误,将你的程序和课本中的相同例子一个字符一个字符地进行比较。在学习这门课程的前几周里,你可能要花很多时间找出语法错误。过一段时间之后,你将会熟悉Python语法并且能够快速地找出语法错误。
1.8.2 运行时错误
运行时错误是导致程序意外终止的错误。在程序运行过程中,如果Python解释器检测到一个不可能执行的操作,就会出现运行时错误。输入错误是典型的运行时错误。当用户输入一个程序无法处理的值时,就会出现输入错误。例如:如果程序希望读取一个数字,而用户输入了一个文本字符串,这就导致程序中出现数据类型错误。
另一个常见的运行时错误是被0除。当整数除法的除数为零时就会发生运行时错误。例如:下面语句中的表达式1/0就会导致一个运行时错误。

c322f0390dfd50f487c1c7b2bfcf8752e6c1cb7a

1.8.3 逻辑错误
当程序不能实现它原来打算要完成的任务时就会导致逻辑错误。发生这种类型的错误的原因有很多种。例如:假设你编写程序清单1-4中的程序,这个程序将华氏温度(35度)转换成摄氏温度。
程序清单1-4 ShowLogicErrors.py


c655f51b6aa2cc7f8845e6f04ebe247e5c28f500

你可以得到摄氏-12.55度,但这是错的,它应该是1.66。为了获取正确的结果,需要在表达式中使用5 / 9 (35 - 32)而不是5 / 9 35 - 32。也就是说,需要添加圆括号括住(35 - 32),这样,Python会在做除法之前首先计算这个表达式。
在Python中,语法错误事实上是被当作运行时错误来处理,因为程序执行时它们会被解释器检测出来。通常,语法错误和运行时错误都很容易找出并且易于更正,因为Python给出提示信息以便找出错误来自哪里以及为什么它们是错的,而查找逻辑错误则非常具有挑战性。
检查点
1.32 三种程序错误是什么?
1.33 如果忘记在字符串后面加右引号,将会产生什么错误?
1.34 如果程序需要从文件中读取数据,但是这个文件并不存在,那么当你运行这个程序时就会导致错误。这个错误是哪类错误?
1.35 假设你编写一个程序计算一个矩形的周长,而你写错了程序导致它计算成矩形的面积。这个错误是哪类错误?
相关文章
|
7月前
|
Python
557: 程序设计C 实验四 题目三 字符串交叉插入(python)
557: 程序设计C 实验四 题目三 字符串交叉插入(python)
|
5月前
|
人工智能 数据挖掘 大数据
爆赞!GitHub首本标星120K的Python程序设计人工智能案例手册
为什么要学习Python? Python简单易学,且提供了丰富的第三方库,可以用较少的代码完成较多的工作,使开发者能够专注于如何解决问题而只花较少的时间去考虑如何编程。此外,Python还具有免费开源、跨平台、面向对象、胶水语言等优点,在系统编程、图形界面开发、科学计算、Web开发、数据分析、人工智能等方面有广泛应用。尤其是在数据分析和人工智能方面,Python已成为最受开发者欢迎的编程语言之一,不仅大量计算机专业人员选择使用Python进行快速开发,许多非计算机专业人员也纷纷选择Python语言来解决专业问题。 由于Python应用广泛,关于Python的参考书目前已经有很多,但将Pytho
|
5月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
|
5月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。
|
6月前
|
人工智能 数据挖掘 大数据
538个代码示例!麻省理工教授的Python程序设计+人工智能案例实践
Python简单易学,且提供了丰富的第三方库,可以用较少的代码完成较多的工作,使开发者能够专注于如何解决问题而只花较少的时间去考虑如何编程。 此外,Python还具有免费开源、跨平台、面向对象、胶水语言等优点,在系统编程、图形界面开发、科学计算、Web开发、数据分析、人工智能等方面有广泛应用。 尤其是在数据分析和人工智能方面,Python已成为最受开发者欢迎的编程语言之一,不仅大量计算机专业人员选择使用Python进行快速开发,许多非计算机专业人员也纷纷选择Python语言来解决专业问题。 由于Python应用广泛,关于Python的参考书目前已经有很多,但将Python编程与数据分析、人工智
|
6月前
|
Python
选择程序设计(python)
选择程序设计(python)
|
6月前
|
存储 Python
顺序结构程序设计(python)
顺序结构程序设计(python)
|
6月前
|
人工智能 数据挖掘 大数据
538个代码示例!麻省理工教授的Python程序设计+人工智能案例实践
Python简单易学,且提供了丰富的第三方库,可以用较少的代码完成较多的工作,使开发者能够专注于如何解决问题而只花较少的时间去考虑如何编程。 此外,Python还具有免费开源、跨平台、面向对象、胶水语言等优点,在系统编程、图形界面开发、科学计算、Web开发、数据分析、人工智能等方面有广泛应用。 尤其是在数据分析和人工智能方面,Python已成为最受开发者欢迎的编程语言之一,不仅大量计算机专业人员选择使用Python进行快速开发,许多非计算机专业人员也纷纷选择Python语言来解决专业问题。 由于Python应用广泛,关于Python的参考书目前已经有很多,但将Python编程与数据分析、人工智
|
7月前
|
安全 数据安全/隐私保护 Python
292: 程序设计C 实验五 题目三 设计密码(python)
292: 程序设计C 实验五 题目三 设计密码(python)
|
7月前
|
C++ Python
623: 程序设计C 实验五 题目六 排序查找(python)
623: 程序设计C 实验五 题目六 排序查找(python)