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

简介: Python shell不仅为Python初学者提供了一个方便的入门工具,更是提高了专业程序员和数据科学家们的生产力。比如在编写程序时忘记了某个表达式的写法,可以打开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。
在上述过程的实践中,大家可能会遇到各种各样的问题,本书无法穷尽所有可能会遇到的问题,所以当遇到具体的问题时应当尽量求助于搜索引擎。关于使用搜索引擎,笔者自己有一条最基本的原则:我不可能是第一个遇到该问题的人!只要遵守这个原则,绝大多数情况下都能找到令人满意的答案。

相关文章
|
26天前
|
监控 大数据 API
Python 技术员实践指南:从项目落地到技术优化
本内容涵盖Python开发的实战项目、技术攻关与工程化实践,包括自动化脚本(日志分析系统)和Web后端(轻量化API服务)两大项目类型。通过使用正则表达式、Flask框架等技术,解决日志分析效率低与API服务性能优化等问题。同时深入探讨内存泄漏排查、CPU瓶颈优化,并提供团队协作规范与代码审查流程。延伸至AI、大数据及DevOps领域,如商品推荐系统、PySpark数据处理和Airflow任务编排,助力开发者全面提升从编码到架构的能力,积累高并发与大数据场景下的实战经验。
Python 技术员实践指南:从项目落地到技术优化
|
2月前
|
人工智能 并行计算 开发者
CUDA重大更新:原生Python可直接编写高性能GPU程序
NVIDIA在2025年GTC大会上宣布CUDA并行计算平台正式支持原生Python编程,消除了Python开发者进入GPU加速领域的技术壁垒。这一突破通过重新设计CUDA开发模型,引入CUDA Core、cuPyNumeric、NVMath Python等核心组件,实现了Python与GPU加速的深度集成。开发者可直接用Python语法进行高性能并行计算,显著降低门槛,扩展CUDA生态,推动人工智能、科学计算等领域创新。此更新标志着CUDA向更包容的语言生态系统转型,未来还将支持Rust、Julia等语言。
193 3
CUDA重大更新:原生Python可直接编写高性能GPU程序
|
2月前
|
数据采集 运维 API
把Postman调试脚本秒变Python采集代码的三大技巧
本文介绍了如何借助 Postman 调试工具快速生成 Python 爬虫代码,并结合爬虫代理实现高效数据采集。文章通过“跨界混搭”结构,先讲解 Postman 的 API 调试功能,再映射到 Python 爬虫技术,重点分享三大技巧:利用 Postman 生成请求骨架、通过 Session 管理 Cookie 和 User-Agent,以及集成代理 IP 提升稳定性。以票务信息采集为例,展示完整实现流程,探讨其在抗封锁、团队协作等方面的价值,帮助开发者快速构建生产级爬虫代码。
110 1
把Postman调试脚本秒变Python采集代码的三大技巧
|
4月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
4月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
64 4
|
4月前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python和DeepSeek进行联网搜索的实践指南
本文介绍如何使用Python和假设的高性能深度学习工具包DeepSeek进行联网搜索,并通过实际案例展示其应用过程。首先,准备环境并安装依赖库(如Python 3.x、pip、DeepSeek、requests和BeautifulSoup4)。接着,讲解了DeepSeek的功能及其在图像分类、实体识别等任务中的应用。通过联网搜索抓取数据并进行预处理后,使用TensorFlow和Keras构建和训练CNN模型。
461 3
|
4月前
|
机器学习/深度学习 数据可视化 算法
Python 高级编程与实战:深入理解数据科学与机器学习
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化和调试技巧。本文将深入探讨 Python 在数据科学和机器学习中的应用,并通过实战项目帮助你掌握这些技术。
|
6月前
|
存储 NoSQL 数据库连接
在Python程序中实现LevelDB的海量key的分批次扫描
通过本文的步骤,您可以在Python程序中实现对LevelDB海量key的分批次扫描。这样不仅能够有效地管理大规模数据,还可以避免一次性加载过多数据到内存中,提高程序的性能和稳定性。希望这篇指南能为您的开发工作提供实用的帮助。
139 28
|
7月前
|
安全 API C语言
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
166 6
|
7月前
|
Shell 开发工具 Python
如何在vim里直接运行python程序
如何在vim里直接运行python程序

推荐镜像

更多