Python程序设计基础教程(慕课版)
上QQ阅读APP看书,第一时间看更新

1.4 第一个Python程序

下面将介绍如何在Python中运行一个传统的“Hello World”程序,包括如何编写、保存与运行Python程序。

通过Python运行程序有两种方法:使用交互式解释器提示符和直接运行一个源代码文件。下面介绍如何使用这两种方法。

1.4.1 在交互模式下运行Python程序

在操作系统中打开终端(Terminal)程序(在Windows操作系统中被称为命令提示符),然后输入python 3并按Enter键来打开Python提示符工具(Python Prompt)。

在交互模式下运行Python程序

启动Python后,会出现“>>>”。这个被称作Python解释器提示符(Python Interpreter Prompt)

在Python解释器提示符后输入以下语句。

print("Hello World!") 

在输入完成后按Enter(回车)键,会看到屏幕上打印出Hello World!字样。

用户会注意到,Python立即输出了一行结果!刚才输入的便是一句独立的Python语句。使用print命令可以打印用户提供的信息。这里提供了文本Hello World!,然后它便被迅速打印到屏幕上。

如果要退出提示符,只需在解释器提示符后输入:

exit() 

注意:exit后要包含一对括号(),并按Enter键来退出解释器提示符。

在macOS的终端程序中,上述操作的执行过程如图1-4所示。

图1-4 在Python解释器提示符中执行print("Hello World!")

1.4.2 选择一款编辑器

当我们希望运行某些程序时,总不能每次都在解释器提示符中输入希望运行的程序。因此需要将它们保存为文件,以后便可以多次运行这些程序。

创建Python源代码文件,需要一款能够提供输入并存储代码的编辑器软件。一款优秀的编辑器能够使编写源代码的工作变得轻松许多。故而选择一款编辑器至关重要。要像挑选想要购买的汽车一样挑选编辑器。一款优秀的编辑器能够帮助用户更轻松地编写Python程序,使用户的编程之旅更加舒适,并帮助找到一条更加安全、快速的道路到达目的地。

对编辑器的最基本要求为语法高亮,这一功能通过标以不同的颜色来帮助区分Python程序中的不同部分,从而更好地阅读程序,并使它的运行模式更加形象化。

如果你对应该从哪里开始还没有概念,本书推荐使用PyCharm教育版软件,它在Windows、macOS X、GNU/Linux上都可以运行。在下一节你将了解到更多信息。

如果你使用的是Windows系统,不要用记事本——这是一个很糟糕的选择,因为它没有语法高亮功能,而且不支持文本缩进功能,之后你将会慢慢了解这一功能究竟有多重要。而一款好的编辑器能够自动帮助你完成这一工作。

如果你已是一名经验丰富的程序员,那一定在用Sublimes Text或Visual Studio Code了。无需多言,它们都是最强大的编辑器之一,用它们来编写Python程序自是受益颇多。

再此重申,你可以选择任意一款合适的编辑器——它能够让编写Python程序变得更加有趣且容易。同时,此刻你更应该专注于学习Python而不是编辑器的使用方法。

1.4.3 PyCharm

PyCharm教育版是一款有助于编写Python程序的免费编辑器,读者可以在官网进行下载。

(1)打开PyCharm时,会看见如图1-5所示的界面,单击Create New Project。

图1-5 PyCharm欢迎界面

在如图1-6所示的界面中,选择Pure Python。

图1-6 选择Pure Python项目

(2)将项目路径位置中的untitled更改为helloworld,如图1-7所示。

图1-7 更改项目的保存路径

(3)建立好项目之后,在如图1-8所示的界面中,右击选中侧边栏中的helloworld,并选择New→Python File。

图1-8 新建Python源代码文件

(4)输入源代码的名称,这里输入Hello,这是第一个源代码的名称,如图1-9所示。

图1-9 输入源代码的名称

现在可以看见一个新建好的空白源代码文件,如图1-10所示。

图1-10 新建好的空白源代码文件

(5)删除那些已存在的内容,输入以下代码。

print("hello world")

(6)右击输入的内容(无需选中文本),然后单击Run 'Hello',如图1-11所示。

图1-11 运行源代码文件

此刻可以看到程序输出的内容,如图1-12所示。

非常好!虽然只是刚开始的几个步骤,但从今以后,创建一个新的文件时,记住只需在helloworld上右击,选择New→Python File,执行如上步骤,输入内容并运行即可。

图1-12 源代码运行后会输出相应的结果

1.4.4 以文件模式运行Python程序

在上一节中我们学习了如何使用一款代码编辑器软件来完成代码的创建、保存和运行的相关操作,如果想要直接运行一段从网络上下载的Python程序,可以按以下步骤操作。

(1)打开终端(命令提示符)窗口。

(2)使用cd命令修改目录到保存文件的地方,如cd/tmp/py。

(3)输入命令Python源代码文件名来运行程序。

例如,在Windows的命令提示符中运行保存好的hello.py程序(假设hello.py保存在C:\Temp\HelloWorld文件夹下)的输出结果如图1-13所示。

图1-13 在命令提示符中运行Python源代码的操作过程

如果得到了与图1-13类似的输出结果,那么恭喜你!——你已经成功运行了第一个Python程序,亦成功穿过了学习编程最困难的部分。

如果你遭遇了什么错误,请确认是否已经正确输入了上面列出的内容,并尝试重新运行程序。注意,Python是区分大小写的,如print和Print是不同的,前者的p是小写的,而后者的P是大写的。此外,你需要确保每一行的第一个字符前面都没有任何空格或制表格,我们会在后面的章节中介绍为什么字符的格式对于Python源代码格外重要。

1.4.5 Python之禅

无论使用哪一种编程工具来书写Python语言的代码,如果想编写出好的程序,本书强烈建议你先在Python的交互模式中输入import this语句,Python会告诉你设计程序的基本原则,这些基本原则才是程序员在程序设计过程中需要经常思考并努力实现的目标。

>>> 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 之父。(编程需要多多练习。) 
做也许好过不做,但没有思考的做还不如不做。(思考才是学习编程的主要方法。) 
如果实现过程很难解释,那它就是个坏想法。(不去写超出自己能力范围的程序。) 
如果实现过程容易解释,那它有可能是个好想法。(易于实现的方法将会提高编程效率。) 
命名空间是个绝妙的想法,请多加利用!(一段程序可以是一个文件,而命名空间就是文件夹。)