Python编程基础
上QQ阅读APP看书,第一时间看更新

2.2 值和变量

2.2.1 变量和变量赋值

在编程语言中,变量(variable)是有名字的用于存储值的内存地址,每个变量的名字必须是唯一的,这就是标识符(Identifiers)。下面的示例用一个变量存储一个整数,然后将值打印到屏幕上。

示例包含两行语句。

1)count=50。赋值语句,将等号右边的整数50存储到变量count中。赋值语句的关键是等号=运算符,等号左边是变量名,等号右边是存储在变量中的值。

2)print(count)。打印语句,将变量count中的值打印到屏幕上。注意,这里count变量是不需要引号的。如果需要直接打印字符串到屏幕就需要加引号。就像前面的“Hello World”程序。

2.2.2 标识符

1.标识符

标识符(Identifiers)也叫名称。用于命名变量、函数、类等。变量名就是标识符的一个示例。在后面的章节,读者会了解到更多的标志符,如函数、类和方法等。标识符可包含字母(A~Z或者a~z)、下画线和数字等,但不能以数字开头。以下是命名规则。

1)必须包含至少一个字母。

2)大小写敏感。

3)长度任意。

4)不能与关键字同名。

5)不允许出现空格。

6)以下画线开头和结尾的标识符是有特殊意义的变量。

① _*,以单下画线开头的,表示模块变量或函数是protected的,不能直接访问的类属性,不能通过from module import*导入,需要通过类提供的接口进行访问。当在交互式解释器模式下时,_这个特殊标识符存储了上一次计算的结果,_存储在builtins模块中。

② __*__,系统定义的名称。这些名称由解释器及其实现(包括标准库)定义,如__init__。

③ __*,以双下画线开头的变量,是类中私有的变量名。

2.PEP

Python增强建议书(Python Enhancement Proposal,PEP),其中的PEP-8是Python的编程规范,部分命名规范如下。

1)避免使用的字符:不使用小写字母“l”(大写是L),大写字母“O”(小写是o),或者大写字母“I”(小写是i)作为变量名。因为在某些字体中,这些字母与数字1和0没有区别。当想用小写字母“l”的时候,可以用大写字母“L”代替。

2)包和模块名规范:模块名,应该简单、全部小写。可以通过在模块名中加入下画线来提高可读性,例如:add_caculator。Python的包也应该是简短的、全小写的名字,尽量不使用下画线,例如:smallcaculator。

3)类名规范:类名通常使用CapWords规范,将所有单词的首字母大写,例如:class CookiePolicy。

4)函数和变量名:函数名应该全部小写,必要时,单词之间使用下画线隔开以提高代码可读性。变量名的规范同函数名。

5)方法名和实例变量名:方法名使用函数命名规则,小写。必要时,单词之间使用下画线隔开以提高代码可读性。对于非公共实例,使用一个下画线开头。

6)常量:常量通常在模块级别定义,并以全部大写字母命名,使用下画线分隔以提高可读性。

3.关键字

Python关键字(Keywords or Reserved Words)是具有特殊含义,而且不能用于命名任何变量、函数、类等的预先内部占用的字符。关键字也被称为保留单词,它们实际上是为Python自身功能保留的。以下标识符用作保留字或该语言的关键字,不能用作普通标识符。它们必须完全按照这里的样式拼写,Python关键字见表2-1。

表2-1 Python关键字

4.内置

除了关键字之外,Python还有可以在任何一级代码使用的“内置(built-in)”的名字集合,这些名字可以由解释器设置或使用。自定义标识符时,不能使用这些内置的名字集。built-in是builtins模块的成员,在程序开始或在交互解释器中输出“>>>”提示之前,由解释器自动导入,在任何一级的Python程序中不需要引用就可以直接使用,比如print()函数、int()函数等。

2.2.3 使用PyCharm创建PythonPractices项目

使用PyCharm创建计算器项目,项目名称为PythonPractices,本书中后面的示例代码均放在PythonPractices项目中实现。操作步骤如下。

1)选择“File”→“New Project”菜单命令,创建PythonPractices项目,如图2-1所示。

图2-1 使用PyCharm新建项目

2)配置新项目名称为PythonPractices,项目解释器使用默认的虚拟环境,如图2-2所示。

图2-2 配置项目名称为PythonPractices

3)PythonPractices项目创建成功,如图2-3所示。

图2-3 项目PythonPractices创建成功

2.2.4 输出计算器帮助内容

在项目PythonPractices中创建calculator.py程序文件,并添加注释,编写打印计算器程序帮助信息的代码,代码内容如下。

上面的代码运行结果如图2-4所示。

图2-4 项目calculator程序帮助信息运行结果

代码的第一行“#!/usr/bin/env python”叫作shebang行,放在脚本的第一行,以“#!”开头,用来告诉类UNIX操作系统要用shebang后面指定的解释器来解释该脚本。当在命令行执行脚本时不需要手动输入python,或者可以双击脚本,系统会利用shebang行提供的信息调用相应的Python解释器,然后独立执行脚本。

print()函数是一个内置函数,存储在builtins.py中,作用是打印对象内容。打开calculator.py程序文件,在编辑区域,按住<Ctrl>键不放,然后单击print函数,即可快速跳转到print()函数在builtins.py文件中定义的位置,如图2-5所示。

图2-5 print()函数的定义

print()函数打印对象内容到流文件,以sep参数分隔,以end参数结尾,以及是否强制flush流,具体实现格式如下。

print()方法的参数详细信息如下。

● objects:需要打印的对象。

● sep:分隔符separator的缩写,object间的分隔符,默认是空格(space)。

● end:追加到内容最后的字符串,默认是换行符“\n”。

● file:类似文件的对象,默认是sys.stdout,标准输出流,通常指向控制台。因此,当使用print()函数打印内容时,用户能直接看到打印结果。

下面举例说明print()函数的用法。

1)输出字符串和数字。

2)自定义结尾。print()函数会默认自动在行末加上回车符。下面的示例代码使用for循环,循环5次,打印0到4的整数。

也可以自定义结尾字符串,示例如下。

print()函数自定义间隔符,print()函数可以一次打印多个值,默认值之间使用空格隔开。也可以通过设置sep参数自定义分隔符。

2.2.5 等待用户输入

前面内容的讲到,可以通过print()函数将内容输出到控制台。但是,如何让用户输入信息到计算机呢?Python提供了内置函数input(),可以等待用户输入字符串,当用户输入内容,按下回车键后,即可将用户输入的内容存储到指定的变量里。比如等待用户输入用户的名字,并将其存入到变量name里。

提示:在Python交互模式下,直接在提示符“>>>”后面输入变量名,然后按〈Enter〉键,即可显示变量内容到控制台。这与通过print()函数打印出结果是有区别的,以下是通过print()函数打印的示例,打印结果没有单引号。但如果是直接输入数字变量,也不会有单引号,结果与print()函数的结果一样。