购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 HelloWorld程序

Python程序支持两种运行方式:交互式和脚本式。下面以代码清单1-1所示的HelloWorld程序为例介绍这两种运行方式。

表1-2 Python部分版本的信息

对于交互式运行方式,可以在操作系统的命令提示符下输入“python”以启动Python解释器,然后在Python提示符“>>>”后面依次输入每行代码后按<Enter>键,即可看到如图1-13所示的结果。

图1-13 代码清单1-1的交互式运行结果

对于脚本式运行方式,可以先在文本编辑器(如记事本、Notepad++等)中输入代码,然后将其保存为扩展名为.py的Python脚本文件(这里将该脚本文件命名为ex1_1.py,保存在D盘的pythonsamplecode/01/目录下),最后在操作系统的命令提示符后面输入如下命令:

脚本式运行结果如图1-14所示。

图1-14 代码清单1-1的脚本式运行结果

1.3.1 中文编码

在Python 3.x的语言环境中,默认使用UTF-8编码,因此,可以直接支持中文。比如,可以将代码清单1-1中的代码改为代码清单1-2中的代码。

表1-2 Python部分版本的信息

将代码清单1-2保存为ex1_2.py,运行结果如图1-15所示。

图1-15 代码清单1-2的脚本式运行结果

注意 使用Python 3.x环境创建Python脚本文件时,需要将文件编码格式设置为UTF-8,否则运行脚本时可能会报错。例如,如果在使用ANSI编码的Python脚本文件中输入代码清单1-2中的代码并运行,则会出现如下错误信息提示:

提示 字符在计算机中也是用0-1串的编码方式来表示和存储的。最早出现的ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)用一个字节的低7位来表示英文字符集的128个字符,最高一位为0,因此其取值范围是0~127,这128个字符编码称为基本ASCII;后来将最高一位的值设置为1以表示附加的128个特殊符号字符、外来语字母和图形符号,这些扩充的128个字符称为扩展ASCII。ASCII最多可表示256个字符,这显然无法满足中文和其他语言文字的表示与存储需求。各国陆续提出了自己的编码标准,如我国的GB2312编码、日本的Shift_JIS编码、韩国的EUC-KR编码。当一个文本中含有多种语言时就可能产生编码冲突问题(即不同语言中的两个字符具有同样的编码),Unicode把所有语言都统一到一套编码里,解决了多语言混合文本中的乱码问题。UTF-8(8-bit Unicode Transformation Format)是一种Unicode可变长度字符编码方式,用1~6个字节对Unicode字符进行编码,用于表示中文简、繁体以及英文、日文、韩文等语言的文字。在UTF-8编码中,一个汉字占3个字节。

1.3.2 单行注释

注释是为增强代码可读性而添加的描述文字。在代码被编译或解释时,编译器或解释器会自动过滤掉注释文字。也就是说,注释的主要作用就是供开发者查看,使得开发者更容易理解代码的作用和含义。在代码运行时注释文字并不会被执行。

Python语言提供了单行注释和多行注释两种方式。单行注释以“#”作为开始符,“#”后面的文字都是注释。例如,在代码清单1-1中,第6行代码中即包含单行注释。因此,第6行代码实际上只会执行print("Hello World!")。

注意 虽然在编写程序时是否对代码添加注释不会影响程序的实际运行结果,但良好的注释将有助于增强程序的可读性,从而提高程序的可维护性。建议读者在进行软件开发时,无论多么简单的功能,也建议加上一些注释来说明实现的思路以及变量、函数和关键语句的作用,这样不仅可以帮助其他开发者快速理解这些代码,也能够帮助开发者本人在隔了一段时间后仍然能够回忆起当时的实现方法。

1.3.3 多行注释

Python语言的多行注释以连续的3个单引号“'''”或3个双引号“"""”作为开始符和结束符。例如,在代码清单1-1中,第1~5行代码即为用3个连续单引号“'''”括起来的多行注释。

将其中第1行和第5行的3个连续单引号“'''”同时改为3个连续双引号“"""”,也可以实现同样的多行注释功能。

1.3.4 书写规范

Python语言通过缩进方式体现各条语句之间的逻辑关系。如代码清单1-3所示,与第2行相比,第3行和第4行的行首有缩进(此处是输入了4个空格)。因此,从逻辑关系上来说,第3行和第4行是第2行的下一层代码,当第2行的bPrint为True时第3行和第4行代码才会被执行。第5行与第2行代码的行首都没有缩进,所以二者是同一层次上的代码,无论bPrint的值是否为True,第5行代码都会被执行。

表1-2 Python部分版本的信息

将代码清单1-3保存为ex1_3.py,运行结果如图1-16所示。

图1-16 代码清单1-3的脚本式运行结果

如果将代码清单1-3中的第1行代码改为

则运行结果如图1-17所示。

图1-17 修改后的代码清单1-3的脚本式运行结果

注意 Python语言对于行首缩进的方式没有严格限制,既可以使用空格也可以使用制表符(Ta b键),对代码进行一个层次的缩进常使用1个制表符、2个空格,或者4个空格。对于同一层次的代码,必须使用相同的缩进方式,否则会报错。例如,如果将代码清单1-3中第3行的行首改为缩进2个空格,而第4行的行首仍然保持缩进4个空格,则会报如下错误:

如果将代码清单1-3中第3行的行首改为缩进1个制表符,而第4行的行首仍然保持缩进4个空格,则会报如下错误:

提示 本书的行首缩进均采用4个空格的方式。即从层次上来说,第1层代码没有缩进,第2层代码有4个空格的缩进,第3层代码有8个空格的缩进……

【思考题1-3】 在Python编程环境提示符下直接输入Python代码并执行的运行方式称为( )。

A.交互式运行

B.脚本式运行

C.代码式运行

D.即时式运行

【思考题1-4】 Python 3.x环境下创建Python脚本文件时,需要将文件编码格式设置为( )。

A.ANSI

B.GBK

C.UTF-8

D.Unicode

1.3.5 输入和输出

如图1-1所示,一个程序通常包括输入数据、输出数据和数据处理等功能。数据输入/输出的形式多样,这里只介绍键盘输入和屏幕输出,关于文件输入/输出的方法将在后面章节中给出。

1.input函数

input函数的功能是接收标准输入数据(即从键盘输入的数据),返回字符串类型的数据,其语法格式如下:

其中,prompt是一个可选参数,包含给用户的提示信息。如果不传该参数,则没有提示信息,用户直接从键盘输入数据。

提示 本书规定,如果一个参数写在一对方括号“[…]”中,则表示该参数是可选参数。实际使用时,既可以传入该参数,也可以不传该参数。

以下语句调用input函数让用户输入姓名,并将输入的姓名保存在name中。

执行上面的语句后,屏幕上会显示提示信息“请输入你的姓名:”,此时从键盘上输入“张三”并按<Enter>键,则会将从键盘上输入的“张三”保存在name中。

然后,执行以下语句:

则会在屏幕上显示name中保存的数据,即“张三”。

程序运行过程及结果如图1-18所示。

图1-18 input函数使用示例

2.eval函数

eval函数的功能是计算字符串所对应的表达式的值,返回表达式的计算结果,其语法格式如下:

其中,expression是字符串类型的参数,对应一个有效的Python表达式。

提示 eval函数的完整语法格式为eval(expression, globals=None, locals=None)。其中,globals和locals是两个可选参数,默认值都为None。若传入参数,则globals必须传入字典对象,locals可以是任何映射对象。在实际使用eval函数时,globals和locals参数通常使用默认值None。

本书在介绍各函数的语法格式时,仅给出其常用的使用方法。关于函数的完整语法格式及各参数说明,请读者参考Python官方帮助文档。

eval函数可以与input函数结合使用,将input函数输入的字符串转换为对应的表达式并计算结果,具体使用方法如下面的代码所示。

运行上面的代码后,如果输入“3+5”,通过“print(r)”可得到结果8;如果输入“5*3.5+10”,通过“print(r)”可得到结果27.5;如果输入“5*/3”,则会因其不是一个有效的表达式而报SyntaxError错误。

程序运行过程及结果如图1-19所示。

图1-19 eval函数使用示例

提示 eval函数的作用可以理解为,将字符串两边的引号去除并将其中的内容取出来参与运算。例如,当执行r=eval(input("请输入一个有效的表达式:"))时,首先,会执行input函数,如果输入为3+5,则input函数返回的结果是一个字符串,即"3+5";然后,执行eval("3+5"),此时会将字符串"3+5"两边的引号去除,返回一个表达式3+5;最后,执行r=3+5,即计算3+5得到8,再通过赋值运算将8赋值给r。

3.print函数

print函数的功能是将各种类型的数据(如字符串、整数、浮点数、列表、字典等)输出到屏幕上,其语法格式如下:

其中,object是要输出的数据。下面的代码清单1-4展示了print函数的使用方法。

表1-2 Python部分版本的信息

将代码清单1-4保存为ex1_4.py,运行结果如图1-20所示。

图1-20 print函数使用示例

提示 上面代码的第1~5行分别输出了字符串、整数、浮点数、列表和字典类型的数据,关于Python中的数据类型会在后面章节中介绍。

【思考题1-5】 下列选项中,用于接收标准输入数据(即从键盘输入的数据)且返回值为字符串类型的函数是( )。

A.eval

B.input

C.print

D.get

【思考题1-6】 下列选项中,用于将各种类型的数据(如字符串、整数、浮点数、列表、字典等)输出到屏幕上的函数是( )。

A.eval

B.input

C.print

D.get zYALZhJX0wuvmBMiWAWMljjBstbHPbtnseMEOnuWJCoUQHvZ6K8CqcNW9ZL6g1hQ

点击中间区域
呼出菜单
上一章
目录
下一章
×