Files

7.1 KiB
Raw Permalink Blame History

doc_type, full_text
doc_type full_text
short sources/01_Python.md

01_Python 总结

核心内容

本文是课程的 Python 入门开篇,介绍了 Python 的基本定位、获取方式、诞生背景,以及为什么应当从 命令行与终端 中学习和使用 Python。文档随后通过一组练习引导学习者使用 Python 交互式解释器完成计算、查询帮助、粘贴代码和调用网络 API 等任务。

Python 是什么

Python 是一种解释型、高级编程语言,常被归类为“脚本语言”,与 Perl、Tcl、Ruby 等语言有相似之处。其语法部分受到 C 语言影响。

Python 由 Guido van Rossum 于 1990 年左右创建,名称来自 Monty Python。

获取与版本要求

课程建议从 Python.org 获取 Python,并安装 Python 3.6 或更新版本。课程笔记和解答使用 Python 3.6,这是原课程材料的历史基线;当前学习建议使用仍受官方维护的 Python 3.x 版本。

如果在练习中 import urllib.request 失败,通常说明正在使用 Python 2;本课程要求使用 Python 3。

Python 的设计动机

Guido van Rossum 创建 Python 的初衷,是在 C 语言和 Bourne shell 之间提供一种更高层次的语言。

背景是:

  • 用 C 编写系统管理工具太慢;
  • 用 shell 完成某些任务又不够合适;
  • 因此需要一种能够“桥接 C 和 shell”的语言。

这说明 Python 从诞生之初就强调 脚本语言、系统自动化与高层表达能力。

在机器上运行 Python

Python 通常作为一个可从终端或命令 shell 启动的程序安装在机器上。用户可以在终端输入:

python

进入交互式解释器后,可以直接输入 Python 语句,例如:

>>> print("hello world")
hello world

文档强调:虽然有许多非终端环境可以编写 Python,但如果能够在终端中运行、调试和交互式使用 Python,就能成为更强的 Python 程序员。终端被视为 Python 的“原生环境”。

练习 1.1:把 Python 当作计算器

第一个练习要求在 Python 交互模式中进行算术计算。

示例问题:Lucky Larry 以每股 235.14 美元买入 75 股 Google 股票,现在价格为每股 711.25 美元,卖出后利润为:

>>> (711.25 - 235.14) * 75
35708.25

文档还介绍了交互式解释器中的 _ 变量,它代表上一次计算结果。例如经纪人抽成 20% 后,Larry 保留 80%:

>>> _ * 0.80
28566.600000000002

这一练习展示了 Python交互式解释器 作为快速计算工具的用途。

练习 1.2:使用 help() 获取帮助

第二个练习介绍 Python 内置的 help() 命令:

  • help(abs):查看 abs() 函数帮助;
  • help(round):查看 round() 函数帮助;
  • help():进入交互式帮助查看器。

注意:help() 不能直接用于 for、if、while 等基本语句,例如 help(for) 会导致语法错误。可以尝试使用字符串形式:

help("for")

如果仍无法获得帮助,则应查阅互联网或官方文档。文档建议访问 https://docs.python.org/3/,并在库参考的内置函数部分查找 abs() 的文档。

相关主题:Python内置函数、Python文档与帮助系统。

练习 1.3:复制粘贴与手动输入

课程鼓励学习者手动输入交互式代码,而不是直接复制粘贴。原因是:初学者通过放慢速度、亲自输入并思考代码,会更好地建立语言感觉。

如果必须复制粘贴,应注意:

  • 只复制 >>> 提示符之后的代码;
  • 不要复制提示符本身;
  • 复制到第一个空行或下一个 >>> 之前为止;
  • 粘贴后可能需要按一次回车运行;
  • 基础 Python shell 中一次不能粘贴多个交互式命令。

示例代码包括:

>>> 12 + 20
32

跨行表达式:

>>> (3 + 4
         + 5 + 6)
18

以及 for 循环:

>>> for i in range(5):
        print(i)

0
1
2
3
4

该练习引出 Python代码输入与交互、Python缩进 和 交互式编程学习方法 等主题。

练习 1.4:公交车到站查询示例

第四个练习展示了一个更高级但直观的 Python 示例:使用 Python 下载网页、解析 XML,并提取芝加哥 CTA 公交到站预测信息。

原始示例使用:

>>> import urllib.request
>>> u = urllib.request.urlopen('http://ctabustracker.com/bustime/map/getStopPredictions.jsp?stop=14791&route=22')
>>> from xml.etree.ElementTree import parse
>>> doc = parse(u)
>>> for pt in doc.findall('.//pt'):
        print(pt.text)

示例输出:

6 MIN
18 MIN
28 MIN

文档指出,通过约 6 行代码,学习者已经完成了:

  • 下载网页;
  • 解析 XML 文档;
  • 提取有用信息;
  • 输出公交车到站预测。

这展示了 Python 在 concepts/Python-网络请求、concepts/XML-解析 和快速自动化任务中的表达力。

API 失效与更新说明

文档特别说明,原来的公交 API 已经失效。后来有用户提供了修改后的版本,但需要申请自己的 API key:

import urllib.request
u = urllib.request.urlopen('http://www.ctabustracker.com/bustime/api/v2/getpredictions?key=REDACTED_PLACEHOLDER&rt=22&stpid=14791')
from xml.etree.ElementTree import parse
doc = parse(u)
print("Arrival time in minutes:")
for pt in doc.findall('.//prdctdn'):
        print(pt.text)

这也提醒学习者:外部 API 并不永久稳定,依赖网络服务的示例可能随着时间变化而失效。该示例主要用于展示网络请求与 XML 解析思路,不保证 URL 长期可用;实际练习可改用本地 XML 示例文件或课程当前仓库说明。

代理与环境变量

如果工作环境需要 HTTP 代理,可能需要设置 HTTP_PROXY 环境变量:

>>> import os
>>> os.environ['HTTP_PROXY'] = 'http://yourproxy.server.com'

这部分涉及 环境变量 和网络环境配置。

重要学习建议

本文反复强调几个入门学习原则:

  1. 优先掌握在终端中运行 Python;
  2. 使用交互式解释器进行实验;
  3. 初学时尽量手动输入代码,而不是复制粘贴;
  4. 善用 help() 和官方文档;
  5. 不必在第一个高级网络示例中完全理解所有细节,后续课程并不依赖 XML 解析。

可延伸的概念页

  • Python:Python 的语言定位、历史与用途。
  • Python交互式解释器:>>> 提示符、即时执行、_ 变量等。
  • 命令行与终端:Python 的原生运行环境。
  • Python文档与帮助系统:help()、官方文档与内置函数参考。
  • 脚本语言:Python 在 C 与 shell 之间的角色。
  • concepts/Python-网络请求:使用 urllib.request 获取远程资源。
  • concepts/XML-解析:使用 xml.etree.ElementTree 解析 XML 数据。
  • concepts/环境变量与进程环境:通过 os.environ 配置运行环境。