《Think Python》练习 1-1、1-2

本文详细探讨了在Python交互模式中常见的语法错误,包括漏掉括号、引号以及错误的运算符用法。同时,通过实践展示了如何利用解释器进行时间、距离和速度的换算,引导Python入门者理解基本的计算和转换操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1章 程序之道

练习 1-1:在交互模式中故意犯错(1)

【习题 1.1.1】print 语句中,如果漏掉一个括号,或者两个都漏掉,会发生什么?
【求解】
情况1:漏掉左括号,或者都漏掉

>>> print 'Holle, World!')
  File "<stdin>", line 1
    print 'Holle, World!')
                        ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('Holle, World!'))?
>>>print 'Holle, World!'
  File "<stdin>", line 1
    print 'Holle, World!')
                        ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('Holle, World!'))?
序号报错含义
1SyntaxError: Missing parentheses in call to ‘print’.语法错误:调用时缺少括号
推测原因:Python 2 中 print 语句不需要括号,而Python 3 需要,所以这里特别说明缺少括号并给出了可能的建议

情况2:漏掉右括号

>>>print ('Holle, World!'
    
                          ^
SyntaxError: unexpected EOF while parsing
序号报错含义
2SyntaxError: unexpected EOF while parsing语法错误:解析时意外终止
推测原因:解释器从左往右读代码, print 语句没有终止符,后面又没有东西,就“意外终止”了

【习题 1.1.2】 如果正尝试打印一个字符串,那么漏掉一个货所有引号,会发生什么?
【求解】
情况1:漏掉左引号,或者都漏掉

>>>print (Holle, World!')
  File "<stdin>", line 1
    print (Holle, World!')
                       ^
SyntaxError: invalid syntax
>>>print (Holle, World!)
  File "<stdin>", line 1
    print (Holle, World!)
                       ^
SyntaxError: invalid syntax
序号报错含义
3SyntaxError: invalid syntax语法错误:无效语法
推测原因:没有引号,解释器将括号里的“Holle, World!”当成了一个变量名,但是逗号、空格、感叹号是非法字符,违背了变量命名的规则,去掉这些符号后,报错就变成了“命名错误:命名没有被定义”了
>>>print ('HolleWorld')
Traceback (most recent call last):
  File "<stdin>", line 1
    print (HolleWorld)
NameError: name 'HolleWorld' is not defined
序号报错含义
5NameError: name ‘HolleWorld’ is not defined命名错误:命名没有被定义

情况2:漏掉右引号

>>>print ('Holle, World!)
  File "<stdin>", line 1
    print ('Holle, World!)
                         ^
SyntaxError: EOL while scanning string literal
序号报错含义
4SyntaxError: EOL while scanning string literal语法错误:扫描字符串时行终止
推测原因:解释器从左往右读代码,字符串没有终止符,但是print语句却终止了,故“扫描字符串时行终止”

【习题 1.1.3】 可以使用一个负号来表示负数,如-2。如果在数字之前放一个正好,会发生什么?如果是2++2呢?
【求解】

>>> -2
-2
>>> 2++2
4

【习题 1.1.4】 在数学标记里,前置 0 是没有问题的,如 02。在 Python 中也这么做会发生什么?
【求解】

>>> 02
2

【习题 1.1.5】 如果在两个值之间不放任何操作符,会发生什么?
【求解】
情况1:两个值中间无空格:

>>> 24
24

情况2:两个值中间有空格:

>>> 2 4
  File "<stdin>", line 1
    2 4
      ^
SyntaxError: invalid syntax
序号报错含义
3SyntaxError: invalid syntax语法错误:无效语法

练习 1-2:解释器牌计算器(时间换算、距离换算、速度换算)

【习题 1.2.1】 在42分42秒钟,一共有多少秒?
【求解】

>>> 42*60+42
2562

【习题 1.2.2】 10千米相当于多少英里?提示:1英里相当于1.61千米。
【求解】

>>> 10/1.61
6.211180124223602

【习题 1.2.3】 如果你42分42秒跑完10千米,那么你的平均速度(跑1千米需要的分钟和秒数)是多少?平均速度是多少千米每小时?
【求解】
问题1:跑1千米需要的分钟和秒数:
分钟:

>>> (42*60+42)/10/60
4

秒数:

>>> (42*60+42)/10.0%60
16.19999999999999

问题2:平均速度是多少千米每小时:

>>> 10.0/(42*60+42)*60*60
14.051522248243561
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值