Python语言程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 快速开发Python程序

前两节介绍了Python的特点、安装以及开发工具的使用方法等,接下来介绍Python的编程约定、变量、输入/输出函数等知识,以帮助大家了解Python程序开发的通用知识,并了解如何快速开发Python程序。

1.3.1 开发第一个Python程序:模拟游戏币充值

生活中常常出现这样的场景:当玩某些游戏时会遇到游戏币充值,此时用户可根据需要在充值平台上输入要充值的账号和金额进行充值。充值成功后,会收到成功信息提示。如何使用Python模拟以上场景呢?

在编写代码前,先思考以下3个问题:

(1)如何接收用户输入的账号、充值金额。

(2)如何保存输入的账号与充值金额。

(3)如何提示用户充值成功。

我们可以使用Python中的input()函数给出提示并接收用户输入的数据,使用变量保存用户输入的数据,使用print()函数输出提示信息。按照这个思路,编写代码模拟游戏币充值的场景,具体如下。

【示例2】 模拟游戏币充值

上述程序中,第1行代码使用input()函数给出提示、接收用户输入的账号,使用变量account_num存储用户输入的账号;第2行代码使用input()函数给出提示、接收用户输入的充值金额,使用变量recharge_amount存储用户输入的充值金额;第3行代码使用print()函数打印用户的账号及充值金额。

运行程序,按照提示依次输入账号和充值金额,程序的执行结果如下:

1.3.2 变量和常量

下面来尝试在hello_world.py中使用一个变量。在这个文件开头添加一行代码,并对第2行代码进行修改,如下所示:

运行这个程序,看看结果如何。

我们添加了一个名为message的变量。每个变量都存储了一个值——与变量相关联的信息。在这里,存储的值为文本“Hello Python world!”。

添加变量导致Python解释器需要做更多工作。处理第1行代码时,它将文本“Hello Python world!”与变量message关联起来;而处理第2行代码时,它将与变量message关联的值打印到屏幕。

下面来进一步扩展这个程序:修改hello_world.py,使其再打印一条消息。为此,在hello_world.py中添加一个空行,再添加下面两行代码:

现在如果运行这个程序,将看到下面两行输出:

在程序中可随时修改变量的值,而Python将始终记录变量的最新值。变量是计算机内存中的一块区域,可以存储规定范围内的值,而且值可以改变。常量是一块只读的内存区域,一旦初始化就不能修改。

1.数据的表示——变量

在Python程序运行的过程中随时可能产生一些临时数据,应用程序会将这些数据保存在内存单元中,并使用不同的标识符来标识各个内存单元。这些具有不同标识、存储临时数据的内存单元称为变量,标识内存单元的符号则为变量名(亦称标识符),内存单元中存储的数据就是变量的值。

Python中定义变量的方式非常简单,只需要指定数据和变量名即可。变量的定义格式如下:

变量名是标识符的例子。标识符是用来标识某样东西的名字。在Python中使用变量时,需要遵守一些规则和指南。违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解。请务必牢记下述有关变量的规则。

➢ 变量名只能包含字母、数字和下画线。

➢ 变量名可以字母或下画线开头,但不能以数字开头,例如,可将变量命名为message_1,但不能将其命名为1_message。

➢ 变量名不能包含空格,但可使用下画线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。

➢ 标识符名称是区分大小写的。例如,myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。

➢ 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。

➢ 通俗易懂,见名知意。变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。

➢ 如果变量名由两个或两个以上单词组成,则单词与单词之间使用下画线连接。

➢ 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着你编写的程序越来越多,并开始阅读别人编写的代码,将会越来越善于创建有意义的变量名。

有效标识符名称的例子有i、__my_name、name_23和a1b2_c3。

无效标识符名称的例子有2things、this is spaced out和my-name。

注意

就目前而言,应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的主意。

2.变量的赋值

Python中的变量不需要声明,变量的赋值操作即是变量声明和定义的过程。每个变量均在内存中创建,都包括变量的标识、名称和值这些信息。例如:

上面的代码创建了一个变量x,并且赋值为1,如图1-28所示。

图1-28 变量的内部结构

在Python中,我们可以先声明并初始化变量,然后修改变量值,如示例3所示。

【示例3】 声明并修改变量值

在示例中先定义变量num,并且赋初值为100,随后修改num的值为90,所以最终得到的输出结果是90。

Python支持同时对多个变量赋值,如示例4所示。

【示例4】 给多个变量赋值

首先定义了一个序列a,这个序列有3个值:1、2、3。在代码❶处,把序列a的值分别赋值给序列(x,y,z)中的变量x、y、z。运行示例代码,输出结果如下:

通过序列的装包和拆包操作,实现了同时给多个变量赋值。

3.常量

常量是指一旦初始化后就不能修改的固定值。例如,数字“1”、字符串“abc”都是常量。C++中使用const保留字指定常量,Java使用static和final保留字指定常量,而Python并没有提供定义常量的保留字。Python是一门功能强大的语言,用户可以自己定义一个常量类来实现常量的功能。

4.使用del关键字删除变量

在Python中,所有的变量都会占据内存空间,如果变量不再使用,可以直接使用del关键字删除并释放它所占的内存空间。

【示例5】 使用del关键字删除变量

程序执行结果:

本程序由于在输出num变量前使用del删除了该变量,所以在使用print()方法时就会出现变量没有被定义的错误信息。

1.3.3 基本输入/输出

大多数程序都旨在解决用户的问题,为此通常需要从用户那里获取一些信息。Python提供了用于实现输入/输出功能的input()函数和print()函数,下面分别对这两个函数进行介绍。通过获取用户输入并学会控制程序的运行时间,可编写出交互式程序。

1.input()函数

在程序需要一个名字时,你需要提示用户输入该名字;在程序需要一个名单时,你需要提示用户输入一系列名字。为此,你需要使用input()函数。input()函数用于接收一个标准输入数据,该函数返回一个字符串类型数据,其语法格式如下:

下面通过一个模拟用户登录的案例,演示print()函数与input()函数的使用,具体如下。

【示例6】 模拟用户登录

程序运行结果:

input()函数让程序暂停运行,等待用户输入一些文本,即要向用户显示的提示或说明,让用户知道该如何做。程序等待用户输入,并在用户按回车键后继续运行。获取用户输入后,Python将其存储在一个变量中,以方便使用。

2.print()函数

print()函数用于向控制台输出数据,它可以输出任何类型的数据,该函数的语法格式如下:

print()函数中各个参数的具体含义如下。

(1)objects:表示输出的对象。输出多个对象时,需要用逗号分隔。

(2)sep:用于间隔多个对象。

(3)end:用于设置以什么结尾。默认值是换行符\n。

(4)file:表示数据输出的文件对象。

下面通过一个打印信息的案例,演示print()函数的使用,具体如下。

【示例7】 打印信息

程序运行结果:

1.3.4 良好的编程约定

程序的编写风格是一个人编写程序时表现出来的特点、习惯逻辑思路等。我们在开发程序时要重视其编写规范,程序不仅应该能够在机器上正确执行,还应便于调试、维护及阅读。

PEP8是一份关于Python的编码规范指南,遵守该规范能够帮助Python开发者编写出优雅的代码,提高代码可读性。下面举例说明一些编程规范。

1.代码布局

(1)缩进。标准Python风格中每个缩进级别使用4个空格,不推荐使用制表符,禁止混用空格与Tab制表符。

(2)行的最大长度。每行最大长度为79,换行可以使用反斜杠,但建议使用圆括号。

(3)空白行。顶层函数和定义的类之间空两行,类中的方法定义之间空一行;函数内逻辑无关的代码段之间空一行,其他地方尽量不要空行。

2.空格的使用

(1)右括号前不要加空格。

(2)逗号、冒号、分号前不要加空格。

(3)函数的左括号前不要加空格,如fun(1)。

(4)序列的左括号前不要加空格,如list[2]。

(5)操作符左右各加一个空格,如a+b=c。

(6)不要将多条语句写在同一行。

(7)在if、for、while语句中,即使执行语句只有一句,也必须另起一行。

3.代码注释

在大多数编程语言中,注释都是一项很有用的功能。在前面编写的程序中都只包含Python代码,但随着程序越来越大、越来越复杂,就应在其中添加说明,对解决问题的方法进行大致的阐述。注释让你能够使用自然语言在程序中添加说明。

(1)如何编写注释

在Python中,注释用井号“#”标识。井号后面的内容都会被Python解释器忽略,如下所示:

Python解释器将忽略第1行,只执行第2行。

(2)注释的分类

①块注释。块注释跟随被注释的代码,缩进至与代码相同的级别。块注释使用“#”开头。

②行内注释。行内注释是与代码语句同行的注释。行内注释与代码至少由两个空格分隔,注释以“#”开头。

③文档字符串。文档字符串指的是为所有公共模块、函数、类以及方法编写的文档说明。文档字符串使用三引号包裹。

【示例8】 定义单行注释对程序语句进行说明

【示例9】 使用多行注释进行功能描述

1.3.5 技能训练

上机练习1变量与注释的使用

需求说明

请完成下面的练习,在做每个练习时,都编写一个独立的程序。保存每个程序时,使用符合标准Python约定的文件名:使用小写字母和下画线,如simple_message.py和simple_messages.py。

(1)简单消息:将一条消息存储到变量中,再将其打印出来。

(2)多条简单消息:将一条消息存储到变量中,将其打印出来;再将变量的值修改为一条新消息,并将其打印出来。

(3)添加注释:选择你编写的两个程序,在每个程序中都至少添加一条注释。如果程序太简单,实在没有什么需要说明的,就在程序文件开头加上你的姓名和当前日期,再用一句话阐述程序的功能。