Python入门第一个程序“Hello, world”

网友投稿 651 2022-05-29

本文主要内容

安装Python

使用IDLE和基础交互模式

编写一个简单的程序

使用IDLE的Python shell窗口

本章将介绍Python和IDLE的下载、安装和启动过程,IDLE是Python的一种集成开发环境。在撰写本书时,Python的最新版本是3.6,3.7版尚在开发中。经过多年的改进,Python 3是第一个无法与低版本完全兼容的版本,所以请确认手头一定是Python 3。如此重大的调整,下一次出现应该要再过很多年了,而且以后的任何改进都会再三考虑,避免对已有重要代码库产生影响。因此,本章给出的内容不太可能会很快过时。

2.1 Python的安装

无论用的是哪个平台,安装Python都是一件简单的事情。第一步是根据机器环境获取最新的发行版本,在Python官方网站上一定可以找到。本书基于Python 3.6。如果已经安装了Python 3.5甚至Python 3.7,那就万事大吉了。其实只要是Python 3的任何版本都可以,本书的大部分内容应该都没有什么问题。

{多个版本共存!} 机器上有可能已经安装了低版本的Python。很多Linux发行版和macOS都自带了Python 2.x,Python已成为了这些版本操作系统的一部分。因为Python 3无法完全兼容Python 2,所以有必要弄清楚在同一台计算机上安装两个版本是否会引起冲突。

不必担心,可以在同一台计算机上安装多个版本的Python。在基于UNIX的系统中(如OS X和Linux),Python 3会与低版本并列安装,不会替换掉低版本的文件。系统在查找python命令时,仍会准确找到低版本。如果要访问Python 3,可以运行python3或者idle命令。在Windows系统中,不同的版本安装在不同的位置,并拥有相互独立的菜单项。

下面列出了一些安装Python时的特定平台说明。平台不同,情况可能会稍有差别,因此请务必阅读下载页面中有关各版本的说明。读者可能已经十分熟悉在自己机器上安装软件的过程,那就长话短说。

Microsoft Windows——利用Python安装程序(当前名为python-3.6.1.exe),Python可以在大多数版本的Windows中安装。下载并执行该安装程序,然后按照提示进行操作即可。可能需要以管理员身份登录,才能运行安装程序。如果是网络终端且没有管理员密码,请让系统管理员来进行安装。

Macintosh——Python 3的版本需要与OS X版本和处理器相匹配。确定了正确的版本后,下载磁盘映像文件,双击进行挂载(mount),然后运行其中的安装程序。OS X安装程序会自动完成所有设置,Python 3将被安装在Applications目录的子目录之下,子目录名称会带有版本号。macOS自带了多个版本的Python,但不必操心,Python 3将会独立于系统自带版本安装。如果已经安装了brew,也可以执行命令brew install python3安装Python。在Python主页上有相关链接,可以找到关于在OS X上使用Python的更多信息。

Linux/UNIX——大多数Linux发行版都预装了Python。只是预装的Python版本不尽相同,可能不一定会是Python 3,请确保已经安装了Python 3的包。还有可能默认未安装IDLE,于是还需要单独安装该软件包。虽然根据Python官方网站提供的源代码,也可以自行编译生成Python 3,但需要用到很多其他的库,而且编译过程也不是为初学者准备的。推荐使用合适的Linux预编译版Python。请用软件管理工具查找并安装合适版本的Python 3和IDLE包。Python还有很多版本,可在很多其他操作系统上运行。如果要获取最新的平台支持清单和安装说明,请查看Python官方网站。

{Anaconda是Python的另一个发行版本!} 除可以直接从Python.org获得Python的发行版本之外,名为Anaconda的发行版也越来越受欢迎,特别是在科学计算和数据科学用户当中。Anaconda是一个以Python为内核的开放式数据科学平台。安装Anaconda之后,不仅Python已就绪,还拥有了R语言和大量预装的数据科学软件包,还可以用附带的conda软件包管理器添加很多其他内容。当然也可以安装miniconda,它只包含Python和conda,然后按需添加软件包。

Anaconda或miniconda都可以从Anaconda官网获取。下载与当前操作系统匹配的Python 3安装程序,并按照操作说明运行。安装完成后,机器上就拥有了完整的Python版本。

如果读者主要对数据科学领域感兴趣,可能就会发现,Anaconda能以一种更快、更简单的方式启动并运行Python。

2.2 基础交互模式和IDLE

Python内置两种与解释器的交互模式:原始的基础(命令行)模式和IDLE。IDLE在很多平台(包括Windows、Mac和Linux)上都有提供,但在其他平台上可能就没有了。为了能让IDLE运行起来,可能需要多做几步操作并安装额外的软件包。但这些多做的工作是值得的,因为IDLE提供了比基础的交互模式更流畅的用户体验。不过,即便平常是用IDLE的,可能还是需要时常启用一下基础模式。对这两种模式的启动和使用,都应该足够熟悉才行。

2.2.1 基础交互模式

基础交互模式是一个相当原生的环境,但本书中的交互式例程一般都比较小。在本书的后续部分,会介绍如何方便地将文件中的代码加入会话(通过模块机制)。下面是在Windows、macOS和UNIX中启动基础会话的步骤。

在Windows中启动基础会话——对于Python 3.x版本,可以导航到“开始”菜单中的“Python 3.6”子菜单,找到“Python 3.6(32-bit)”并单击。或者可以直接找到Python.exe可执行文件(例如,在C:\Users\myuser\AppData\LocaI\Programs\Python\Python35-32中)并双击它。然后会出现图2-1所示的窗口。

在macOS中启动基础会话——打开一个终端窗口并键入python3。如果出现“Command not found”错误,请运行Applications目录下Python3子目录中的Update Shell Profile脚本。

在UNIX中启动基础会话——在命令提示符下键入python3。在当前窗口中会出现版本消息,类似于图2-1所示,后面跟着Python提示符>>>。

图2-1 Windows 10中的基础交互模式

{退出交互式shell!} 按下Ctrl+Z(Windows中)或Ctrl+D(Linux或UNIX中),或者在命令提示符下键入exit(),即可退出基础会话。

大部分系统都带有命令行编辑和命令历史记录机制。用上下箭头键和Home、End、Page Up、Page Down键可以翻看之前输入的命令,按下Enter键即可再次执行。在用本书学习Python时,这种方式足够用了。另一种方案是使用优秀的Python模式下的Emacs编辑器,通过集成的shell缓冲区来访问Python的交互模式。

2.2.2 IDLE集成开发环境

IDLE是Python内置的开发环境,其名称为“Integrated DeveLopment Environment”的缩写(当然,也可能受了某个英国电视节目演员姓氏的影响)。IDLE集成了交互式解释器、代码编辑和调试工具,与创建Python代码有关的工作可以在此一站式完成。IDLE提供的多种工具,足以吸引大家从它这里开始学习Python。以下是在Windows、macOS和Linux中运行IDLE的方法。

在Windows中启动IDLE——对于Python 3.6版本,可以打开Windows“开始”菜单,找到“IDLE(Python 3.6 32-bit)”并单击。然后将会出现图2-2所示的窗口。

在macOS中启动IDLE——进入Applications目录下的Python 3.x子目录,在此运行IDLE。

在Linux或UNIX中启动IDLE——在命令提示符下键入idle3,将会出现一个类似图2-2的窗口。如果使用操作系统的包管理器来安装IDLE,那么在Programming之类的子菜单中应该会有一个IDLE的菜单项。

图2-2 WIndows中的IDLE

2.2.3 基础交互模式和IDLE的适用场景

用IDLE还是用基础shell窗口呢?请先从IDLE或Python shell窗口开始。在第10章以前,这两种界面都能胜任本书的代码示例。第10章将会介绍如何编写自己的模块,用IDLE创建和编辑代码文件会比较便捷一些。但如果有特别偏爱的文本编辑器,也许再加上基础shell窗口就能满足需要了。如果没有特别偏爱的编辑器,建议就从IDLE开始吧。

2.3 使用IDLE的Python shell窗口

启动IDLE后会打开Python shell窗口(如图2-3所示)。当键入代码时,它会基于Python语法提供自动缩进和代码着色功能。

图2-3 使用IDLE中的Python shell。

代码在输入时会自动着色(基于Python语法)。将光标放在任一已键入的命令上并按下Enter键,就会把命令和光标一起移动到最后一行,在这里可以编辑命令,按Enter键就会将这条命令发送给解释器。将光标放在最后一行,按下Alt+P或Alt+N键,就可以在历史记录中前后切换命令。找到要执行的命令后,根据需要进行编辑并按下Enter键,就会将其发送给解释器

利用鼠标、箭头键、Page Up和Page Down键,以及某些符合Emacs标准的键,可以在命令缓冲区中来回移动。详情参见Help菜单。

会话中的所有内容都会被记入缓冲区中。可以前后滚动或搜索,将光标放在任意行上按下Enter键(生成一个硬回车),该行就会被复制到屏幕的最后一行,在这里可以编辑命令,再次按下Enter键就会将其发送给解释器。也可以让光标停在最后一行,然后通过按Alt+P或Alt+N键在之前输入的命令之间前后切换,Alt+P和Alt+N会不停地将命令复制到最后一行。如果找到了需要执行的命令,可以再次进行编辑,按下Enter键就可发送给解释器。按下Tab键则可以查看当前键入内容的自动补全列表,列表是基于Python关键字和用户自定义值生成的。

如果觉得可能处于挂起状态,无法显示新的提示符了,那么可能是解释器在等待用户输入。按下Ctrl+C发送中断命令,就能回到提示符状态,这也可以用于中断任何正在运行的命令。如果要退出IDLE,请在File菜单中选择Exit。

一开始用得最多的可能就是Edit菜单。与其他菜单一样,可以通过双击顶部的虚线将其解绑,让其位于窗口上端。

2.4 第一个程序“Hello, world”

无论通过哪种方式使用Python的交互模式,都应该看到由3个三角括号“>>>”组成的提示符。这就是Python的命令行提示符,表示可以键入要执行的命令,或要计算的表达式。下面按惯例从“Hello, World”程序开始吧,用Python来实现只需要一行代码(每一行代码结束都要键入一个硬回车):

>>> print("Hello, World") Hello, World

这里在命令行提示符后键入了print函数,结果显示在了屏幕上。执行print函数会将其参数打印到标准输出上(通常是屏幕)。如果是在运行Python代码文件时执行该命令,也会发生完全相同的事情,“Hello, World”将被打印到屏幕上。

恭喜!第一个Python程序就此完工了,而Python甚至还没开讲呢。

2.5 利用交互式提示符探索Python

无论是在IDLE中,还是在标准的交互式命令提示符下,都有一些便利的学习工具来探索Python。第一个工具是help()函数,它有两种模式。在命令提示符后输入help(),即可进入在线帮助系统,从中可以获得有关模块、关键字或主题的帮助。帮助系统内的提示符是help>,这时输入模块名称(如math或其他主题),就能查看相关的Python文档。

通常可以用更有针对性的方式来使用help(),这样会更为便捷。只要将类型或变量名称作为help()的参数,就可以马上显示其帮助文档:

>>> x=2>>> help(x) Help on int object: class int(object)  |  int(x=0) -> integer |  int(x, base=10) -> integer |  |  Convert a number or string to an integer, or return 0 if no arguments  |  are given. If x is a number, return x.__int__(). For floating point  |  numbers, this truncates towards zero.  |  |  If x is not a number or if base is given, then x must be a string,  |  bytes, or bytearray instance representing an integer literal in the...  (continues with the documentation for an int)

Python入门:第一个程序“Hello, world”

以这种方式使用help(),可以很方便地查看某个方法的确切语法和对象的行为。

help()函数是pydoc库的一部分,它在访问Python库内文档时有若干个参数可供选用。 因为所有Python安装完成后都会自带完整的文档,即使不能上网,全部官方文档也都唾手可得。有关访问Python文档的更多信息,参见附录A。

另一个有用的函数是dir(),它列出了特定名称空间中的对象。在没有给出参数时,它会列出当前的全局变量,但它也可以列出某个模块中的全部对象,甚至某个类型的全部对象:

>>> dir() ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'x']>>> dir(int) ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']>>>

dir()函数在查找方法和数据的定义时十分有用,可以一眼就看到属于某个对象或模块的全部成员。在调试代码的时候也很有用,因为在什么地方定义了什么都一目了然。

与dir()``函数不同,globals()和locals()函数会显示与对象关联的值。在目前情况下,这两个函数会返回相同的结果,所以这里只给出globals()的输出结果:

>>> globals() {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , 'x': 2}

与dir()函数不同,globals()和locals()显示的都是与对象相关的值。在第10章中这两个函数将会更频繁地出现。好了,这足以说明,有多种方法可以查看Python会话内的当前状态。

2.6 小结

在Windows系统中安装Python 3是十分简单的,只要从Python官方网站下载最新版的安装程序运行一下即可。在Linux、UNIX和Mac系统中的安装过程稍有区别。

请参考Python网站上的安装说明,尽可能通过系统自带的软件包安装程序进行安装。

还可以通过Anaconda(或miniconda)来安装,其发行版可以在其官方网站上找到。

Python安装完成之后,可以选用基础交互式shell(以后再加入个人偏爱的编辑器),也可以选用IDLE集成开发环境。

本文摘自《Python快速入门》( 第3版)

《Python快速入门》( 第3版)

Python软件基金会主席作品!

经典Python入门书

本书是Python专业人士Naomi Ceder编写的Python语言的综合指南。她是一位经验丰富的教学者,她既能让读者关注语言的细节,又能使其具备解决实际问题的能力。本书中配有大量贴切的示例和边做边学的习题,有助于读者掌握每一个重要概念。无论读者是要抓取网站内容还是想玩转嵌套元组,都会赞叹本书的清晰、专注和对细节的重视。

本书主要内容 ● 明确涵盖Python 3。 ● 全面介绍核心库、包和工具。 ● 配备精深的习题。 ● 新增5章与数据科学相关的内容。

本文转载自异步社区。

原文链接:https://www.epubit.com/articleDetails?id=NN15035b5a-e799-4590-9986-94aa3cee3991

软件开发

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Maven从入门到精通,小白也能快速上手
下一篇:Java进阶(三)Java安全通信:HTTPS与SSL
相关文章