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

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

第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
<think>好的,我现在需要帮助用户了解如何从零开始学习Python,并给出学习路径和资源推荐。首先,我得回顾用户提供的引用内容,看看有哪些可用的信息。引用1提到了Python各个方向的路线图和技术点汇总,引用2和3则详细介绍了学习路线、资料以及交流群等信息。用户希望从零基础到精通,所以得系统性地分阶段规划。 首先,我应该确定学习路径的几个阶段。通常,学习编程语言的基础语法是第一步,然后是进阶内容,比如面向对象、模块和包。接下来是应用方向,比如爬虫、数据分析、Web开发等,这些在引用里都有提到。然后,推荐学习资源和工具,比如书籍、在线课程、开发环境等,这些在引用2和3中有资源包和工具包的信息。另外,引用2还提到了交流群,可以建议用户加入以获取帮助。 需要注意用户可能没有编程经验,所以基础部分要详细,推荐适合新手的资源,比如《Python编程:从入门到实践》这本书。同时,工具方面,PyCharm和Jupyter Notebook都是不错的选择,引用3里提到了工具包,应该包含这些。 然后,实战项目很重要,用户需要实际练习,比如小游戏、爬虫案例,引用3中的爬虫学习路线可能有用。进阶部分可以引导到机器学习、深度学习,但可能属于后续阶段。 最后,学习建议部分,引用2强调实践和交流,所以需要提醒用户多写代码,参与社区,引用里的交流群可以推荐。资源汇总部分,引用1的技术点汇总和引用3的路线图应该包含进去。 需要确保回答结构清晰,分阶段逐步引导,同时结合引用中的资源,自然地添加引用标识。还要检查是否符合系统级指令,比如数学公式的格式,中文回答,生成相关问题等。最后生成的相关问题要围绕Python学习路径、资源推荐、常见问题等。</think>### 从零开始学习Python的路径与资源推荐 #### 一、学习路径规划 1. **基础语法阶段(1-2周)** - 学习变量、数据类型、运算符、流程控制(条件语句、循环语句) - 掌握函数定义、模块导入、文件操作 - 推荐工具:安装Python解释器 + PyCharm社区版[^3] 2. **进阶核心知识(2-4周)** - 面向对象编程(类与对象、继承、多态) - 异常处理、装饰器、生成器 - 学习标准库(如`os`、`sys`、`collections`) - 示例代码练习: ```python class Animal: def __init__(self, name): self.name = name def speak(self): raise NotImplementedError ``` 3. **专项技能拓展(按需选择方向)** - **Web开发**:Django/Flask框架 + 数据库(SQLite/MySQL) - **数据分析**:NumPy/Pandas + Matplotlib/Seaborn可视化 - **爬虫技术**:Requests/Scrapy框架 + BeautifulSoup解析 - **自动化运维**:脚本编写 + Ansible/SaltStack - **人工智能**:TensorFlow/PyTorch(需数学基础) #### 二、资源推荐 1. **书籍** - 入门:《Python编程:从入门到实践》[^1] - 进阶:《流畅的Python》《Effective Python2. **在线课程** - 免费:Codecademy Python课程、廖雪峰Python教程 - 系统化:Coursera「Python for Everybody」专项课程 3. **开发工具包** - 环境管理:Anaconda(集成Jupyter Notebook) - 代码托管:GitHub + Git基础操作 4. **实战项目资源** - 小型项目:2048游戏、天气查询工具 - 中型项目:电商数据分析、新闻聚合爬虫 - 开源社区:GitHub「awesome-python」项目列表 #### 三、学习建议 1. **实践驱动**:每学完一个知识点立即编写小程序验证,例如用$f(x)=x^2$实现函数绘图 2. **代码规范**:遵循PEP8规范,使用`flake8`工具检查代码 3. **社区互动**:加入Python自学交流群(见引用[2]),参与CodeReview 4. **知识管理**:用Markdown记录学习笔记,推荐使用Typora+Git管理版本 #### 四、资源汇总 - 引用[1]提供的技术路线图:覆盖Web/数据科学/自动化等方向知识体系 - 引用[3]的爬虫专项资料包:包含反爬策略与Scrapy高级用法 - 数学基础补充:离散数学与线性代数对算法和AI方向尤为重要,例如矩阵运算$A_{m×n} \cdot B_{n×p} = C_{m×p}$
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值