《Python数据科学实践指南》——1.4 使用Python shell调试程序

简介:

本节书摘来自华章计算机《Python数据科学实践指南》一书中的第1章,第1.4节,作者 纪路,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.4 使用Python shell调试程序

Python shell不仅为Python初学者提供了一个方便的入门工具,更是提高了专业程序员和数据科学家们的生产力。比如在编写程序时忘记了某个表达式的写法,可以打开Python shell,在里面调试好了之后再写入程序。或者直接在Python shell中探索原始数据文件中的数据,变换数据的结构,执行计数、去重、分组等操作。并且可以随时查看前辈们留给我们的建议,比如在Python shell中输入import this,将导入Python中一个名为this的模块:

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>>

大意是:

Python 之道

美丽优于丑陋
明确优于晦涩
简单胜于复杂
复杂胜于混乱
平铺胜于嵌套
稀疏胜于紧凑
可读性很重要
尽管实用性很重要,但也不能破例违背上述原则
绝不让错误无声无息,除非你想这么做
面对模棱两可时,不要妄想猜测能解决问题
应该只有一种最适合的,且显而易见的解决方案
可能这种方案一开始并不那么显而易见,因为你不是Python之父
做比不做强,但是随意做还不如不做
很难向别人解释的方案是不好的
很容易向别人解释的方案也许是好的
命名空间是一个令人拍手称赞的好点子,让我们善加利用

通过上面的例子,我们已经知道了Python中模块的概念,模块是Python中最大的代码单位,以后我们还会学到文件、函数、语法块等不同级别的Python代码单位。在一个Python的模块中可能会包含一个到多个不同的功能,Python中随解释器一起分发的标准模块有300多个,可以应付绝大多数的编程任务,也确实有些程序员坚持只使用标准库提供的模块。不过本书提倡的是另外一种编程的哲学,即“不要重复造轮子”,只要某一个功能已经被别人实现为模块了,那么最好拿来就用,而不是自己重新编写。所以我们会安装很多第三方模块,这些模块也是非常优秀的,只是还没有被收录进官方的标准模块中,也是基于此,下面将使用pip来安装第三方模块。不过,根据操作系统的不同,安装方式也略有区别,如果读者使用Mac或Linux系统,那么按照之前的教程并没有经历安装Python解释器的步骤,因此这里需要读者确认一下自己的Python版本。可以在终端输入python,比如:

$ python
Python 2.7.11 (default, Jan 28 2016, 13:11:18) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

在输出的第一行Python代码之后,由点号分隔的部分就是Python的版本,例如上述代码中显示的版本是2.7.11。如果你的Python版本为2.7.9或高于该版本,那么你无须任何操作就已经拥有了pip程序,可以在终端中输入pip尝试一下,会有类似下面的输出:

$pip

Usage:   
  pip <command> [options]

Commands:
  install                    Install packages.
  download                   Download packages.
  uninstall                  Uninstall packages.
  freeze                     Output installed packages in requirements format.
  list                       List installed packages.
  show                       Show information about installed packages.
  search                     Search PyPI for packages.
  wheel                      Build wheels from your requirements.
  hash                       Compute hashes of package archives.
  completion                 A helper command used for command completion
  help                       Show help for commands.

如果很不幸你的Python版本号低于2.7.9,那么需要手动安装pip,可以在网址https://bootstrap.pypa.io/get-pip.py 中下载安装脚本。

将脚本下载到某一个目录中,然后使用下面的命令进行安装:

$sudo python get-pip.py

由于Mac系统和Linux系统权限的要求,这一步需要你输入电脑的开机密码。

对于Windows系统来说,如果是参考本书的安装方式进行安装的,那么你已经获得了最新版本的Python,也就表示你已经拥有了pip,可以直接使用。

使用pip安装Python的第三方模块非常简单,比如我们要安装requests这个第三方模块,可以使用下面的命令:

$pip install requests

一般来讲,Windows的用户直接运行这个命令就可以安装了,而Mac或Linux用户由于系统权限的原因需要在命令的最前方增加sudo这个命令,代码如下:

$sudo pip install requests

以后的章节中将不再强调这一区别,请读者根据自己的系统使用相对应的命令。另外有一部分因为历史原因,第三方库是使用C语言编写的,因此很可能还需要你的电脑上装有C/C++编译器。对于Mac和Linux来说,就是GCC编译器,对于Windows来说则是Visual Studio。

在上述过程的实践中,大家可能会遇到各种各样的问题,本书无法穷尽所有可能会遇到的问题,所以当遇到具体的问题时应当尽量求助于搜索引擎。关于使用搜索引擎,笔者自己有一条最基本的原则:我不可能是第一个遇到该问题的人!只要遵守这个原则,绝大多数情况下都能找到令人满意的答案。

相关文章
|
3天前
|
消息中间件 程序员 调度
Python并发编程:利用多线程提升程序性能
本文探讨了Python中的并发编程技术,重点介绍了如何利用多线程提升程序性能。通过分析多线程的原理和实现方式,以及线程间的通信和同步方法,读者可以了解如何在Python中编写高效的并发程序,提升程序的执行效率和响应速度。
|
3天前
|
缓存 Shell 开发工具
[oeasy]python0016_在vim中直接运行python程序
在 Vim 编辑器中,可以通过`:!`命令来执行外部程序,例如`:!python3 oeasy.py`来运行Python程序。如果想在不退出Vim的情况下运行当前编辑的Python文件,可以使用`%`符号代表当前文件名,所以`:!python3 %`同样能运行程序。此外,可以使用`|`符号连续执行命令,例如`:w|!python3 %`会先保存文件(`w`)然后运行Python程序。这样,就可以在不离开Vim的情况下完成编辑、保存和运行Python程序的流程。
14 0
|
4天前
|
监控 开发者 Python
Python中记录程序报错信息的实践指南
Python中记录程序报错信息的实践指南
12 1
|
8天前
|
监控 测试技术 持续交付
Python自动化测试代理程序可用性
总之,通过编写测试用例、自动化测试和设置监控系统,您可以确保Python自动化测试代理程序的可用性,并及时发现和解决问题。这有助于提供更可靠和高性能的代理服务。
12 4
|
10天前
|
Python
简单的 Python 计算器程序
这是一个简单的Python计算器程序,实现了加、减、乘、除功能。用户选择运算类型及输入两个数字后,程序依据选择调用相应函数进行计算并显示结果。若输入非法,程序显示错误信息。
33 3
|
13天前
|
监控 测试技术 API
Python Web应用程序构建
【4月更文挑战第11天】Python Web开发涉及多种框架,如Django、Flask和FastAPI,选择合适框架是成功的关键。示例展示了使用Flask创建简单Web应用,以及如何使用ORM(如SQLAlchemy)管理数据库。
23 4
|
15天前
|
人工智能 数据库 开发者
Python中的atexit模块:优雅地处理程序退出
Python中的atexit模块:优雅地处理程序退出
12 3
|
16天前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结
|
16天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
17天前
|
Python
过年了,让GPT用Python给你写个放烟花的程序吧!
过年了,让GPT用Python给你写个放烟花的程序吧!
18 0