像计算机科学家一样思考python_像计算机科学家一样思考python-第1章 程序之道...

1.7调试

程序是很容易出错的。因为某种古怪的原因,程序错误被称为bug,而查捕bug的过程称为调试(debugging)。

一个程序中可能出现3种类型的错误:语法错误、运行时错误和语义错误。对它们加以区分,可以更快的找到错误。

编程,特别是调试,有时候会引发强烈的情绪。如果你挣扎于一个困难的bug,可能会感到愤怒、沮丧以及窘迫。

有证据表明,人们会像对待人一样对待电脑。当电脑良好完成工作时,我们会把它们当作队友,而当他们难以控制、粗暴无礼的时候,我们会按照对待那些粗暴固执的人一样对待它们。

对这些反应行为有所准备,可能会帮助你更好地对待电脑。一种方法是把它当作你的雇员,它有一定的长处,如速度和精度,也有特定的弱点,如没有同情心和无法顾全大局。

你的任务是做一好经理:设法扬长避短,并找到方法控制你的情绪去面对问题,而不是让你的反应影响工作效率。

学习调试可能会带来挫折感,但它是一个有价值的技能,并在编程之外还有很多用途。

1.9练习

在计算机前阅读本书是一个好主意,因为你可以边看边试验书中的示例。

每当你试验新的语言特性时,应当试着故意犯错。例如,在”hello,world”程序中,如果少写一个引号,会发生什么?如果两个引号都不写,会怎么样?如果把print拼写错了,会如何?

这种试验会帮你记住所读的内容,也能帮你学会调试,因为这样能看到不同的出错消息代表着什么。现在故意犯错总比今后在编码中意外出错好。

少写1个引号:

1 In [1]: print("hello world)

2 File "", line 1

3 print("hello world)

4 ^

5 SyntaxError: EOL while scanning string literal

两个引号都不写

1 In [2]: print(hello world)2 File "", line 1

3 print(hello world)4 ^

5 SyntaxError: invalid syntax

print拼写错了

In [3]: printt("hello world")---------------------------------------------------------------------------NameError Traceback (most recent call last) in

----> 1 printt("hello world")

NameError: name'printt' is not defined

练习1-1

1.在print语句中,如果漏掉一个括号,或者两个都漏掉,会发生什么?

猜测:会发生语法错误--猜错了

实际结果:

漏掉一个括号:

程序会认为输入没有结束

漏掉两个括号:

语法错误,并给出正确输入提示

2.如果正尝试打印一个字符串,那么若漏掉一个或所有的引号,会发生什么?

漏掉1个引号:语法错误

In [11]: print("hello)

File"", line 1

print("hello)

^SyntaxError: EOLwhile scanning string literal

漏掉所有的引号:

程序把hello当作是一个变量名,但是这个变量事先没有定义,所以会报nameError

In [12]: print(hello)---------------------------------------------------------------------------NameError Traceback (most recent call last) in

----> 1 print(hello)

NameError: name'hello' is not defined

3.可以使用一个负号来表示负数,如-2。如果在数字之前放一个正号,会发生什么?如果是2++2呢?

放一个正号:

In [14]: +2Out[14]: 2

2++2

进行了加法计算,但无论中间放几个+号,都视作1个+

In [16]: 2++2Out[16]: 4#论中间放几个+号,都视作1个+

In [18]: 2++++++2Out[18]: 4

4.在数学标记里,前置0是没有问题的,如02.在Python中也这么做会发生什么?

In [19]: 02File"", line 1

02

^SyntaxError: invalid token

#正确示例

In [20]: 2Out[20]: 2

5.如果在两个值之间不放任任何操作符,会发生什么?

In [21]: 2 3File"", line 1

2 3

^SyntaxError: invalid syntax#正确示例

In [22]: 23Out[22]: 23

练习1-2

启动python解释器,把它当作计算器使用

1.在42分42秒中,一共有多少秒?

In [23]: 42*60+42Out[23]: 2562

2.10千米相当于多少英里?提示:1英里相当于1.61千米

In [31]: 10/1.61Out[31]: 6.211180124223602

3.如果你用42分42秒跑完10千米,那么你的平均速度(跑1千米需要的分钟和秒数)是多少?平均速度是多少千米每小时?

计算公式:

1千米=1000米

时间=距离/速度

速度=距离/时间

距离=距离*时间

首先42分42秒是2562秒

是42.7分

约等于0.71小时

每分钟的平均速度是:0.23

In [36]: 10/42.7

Out[36]:

0.23419203747072598

跑1千米需要的分钟是:

跑1千米需要的秒数:

平均速度是多少千米每小时?(以小时为单位)

数学计算头疼-晕~! 也许我先在纸上把公式写下来,然后把数字往公式中套会容易的多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
注:上次误将加密文档上传,抱歉!这次已解密了。 《像计算机科学家一样思考python》按照培养读者像计算机科学家一样的思维方式的思路来教授python语言编程。全书贯穿的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供一个具体场景方便介绍的媒介。《像计算机科学家一样思考python》并不是一本介绍语言的书,而是一本介绍编程思想的书。和其他编程设计语言书籍不同,它不拘泥于语言细节,而是尝试从初学者的角度出发,用生动的示例和丰富的练习来引导读者渐入佳境。 作者从最基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量、表达式、语句、函数和数据结构。此外,书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法、运行时和语义错误。每一都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一都抽出一节来讲解如何调试程序。作者针对每中所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。可以说这是一种非常有益的创新,让初学编程的读者少走很多弯路。 全书共19和3个附录,详细介绍了python语言编程的方方面面。《像计算机科学...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值