本篇主要给大家介绍Python中保留字、标识符、变量的使用,请看下文。
Python保留字
与 C、C++、Java、C# 等语言不同,Python 没有定义常量的关键字,意即 Python 中没有常量的概念。为了实现与其他语言中功能相近的常量,可以使用 Python 面向对象的方法编写一个“常量”模块。
将以下代码保存为 test-const.py:
import sysclass _CONSTANT: class ConstantError(TypeError) : pass def __setattr__(self, key, value): if key in self.__dict__.keys(): raise(self.ConstantError, "常量重新赋值错误!") self.__dict__[key] = valuesys.modules[__name__] = _CONSTANT()#使用以下方式为 CONSTANT 这个“常量”赋值和调用:CONSTANT =_CONSTANT()CONSTANT.TEST = 'test'print(CONSTANT.TEST)#尝试使用以下方式为 CONSTANT 重新赋值:CONSTANT.TEST = 'test111'print(CONSTANT.TEST)
程序执行结果如下所示:
C:UsersAdministrator.spyder-py3Python test-const.py testTraceback (most recent call last): File "test-const.py", line 35, in <module> CONSTANT.TEST = 'test111' File "test-const.py", line 27, in __setattr__ raise(self.ConstantError, "常量重新赋值错误!")TypeError: exceptions must derive from BaseException
可以看到,第一次为 CONSTANT.TEST 赋值后能够成功执行,当尝试为 CONSTANT.TEST 重新赋值时将会出现错误提示,这相当于起到了常量的作用。
保留字即其他语言中的关键字,是指在语言本身的编译器中已经定义过的单词,具有特定含义和用途,用户不能再将这些单词作为变量名或函数名、类名使用。Python 3.7.2 中的保留字主要有 False、None 等 35 个。
温馨提示:Python 3.7.2 中的 35 个保留字False、None、True、and、as、assert、async、await、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield.
Python 2.X 中的 exec 和 print 等保留字在 3.X 中已经改为内置函数。 Python 3.7.2 中 35 个保留字的含义及作用如表 1 所示。
表 1:Python 3.7.2 中 35 个保留字的含义及作用 |
||
序 |
保留字 |
说明 |
1 |
and |
逻辑与操作,用于表达式运算 |
2 |
as |
用于转换数据类型 |
3 |
assert |
用于判断变量或条件表达式的结果 |
4 |
async |
用于启用异步操作 |
5 |
await |
用于异步操作中等待协程返回 |
6 |
break |
中断循环语句的执行 |
7 |
class |
定义类 |
8 |
continue |
继续执行下一次循环 |
9 |
def |
定义函数或方法 |
10 |
del |
删除变量或序列的值 |
11 |
elif |
条件语句,与 if、else 结合使用 |
12 |
else |
条件语句,与 if、else 结合使用;也可用于异常或循环语句 |
13 |
except |
包含捕获异常后的处理代码块,与 try、finally 结合使用 |
14 |
False |
含义为“假”的逻辑值 |
15 |
finally |
包含捕获异常后的始终要调用的代码块,与 try、except 结合使用 |
16 |
for |
循环语句 |
17 |
from |
用于导入模块,与 import 结合使用 |
18 |
global |
用于在函数或其他局部作用域中使用全局变量 |
19 |
if |
条件语句,与 elif、else 结合使用 |
20 |
import |
导入模块,与 from 结合使用 |
21 |
in |
判断变量是否在序列中 |
22 |
is |
判断变量是否为某个类的实例 |
23 |
lambda |
定义匿名函数 |
24 |
None |
表示一个空对象或是一个特殊的空值 |
25 |
nonlocal |
用于在函数或其他作用域中使用外层(非全局)变量 |
26 |
not |
逻辑非操作,用于表达式运算 |
27 |
or |
逻辑或操作,用于表达式运算 |
28 |
pass |
空地类、方法或函数的占位符 |
29 |
raise |
用于抛出异常 |
30 |
return |
从函数返回计算结果 |
31 |
True |
含义为“真”的逻辑值 |
32 |
try |
测试执行可能出现异常的代码,与 except, finally 结合使用 |
33 |
while |
循环语句 |
34 |
with |
简化 Python 的语句 |
35 |
yield |
从函数依次返回值 |
在 Python 环境下可以执行以下命令查看当前版本的保留字:
>>>import keyword>>>keyword.kwlist
程序执行结果如下:
>>> import keyword>>> keyword.kwlist['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
若将保留字作为标识符并赋值将会得到语法错误,如下所示。
>>>class="This is a class" File "<stdin>", line 1 class="This is a class" ^SyntaxError: invalid syntax
标识符
Python标识符是指变量、函数、类、模块等的名称
标识符命名规则
Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:
1.标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
2.标识符不能和 Python 中的保留字相同。有关保留字,后续章节会详细介绍。
3.Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
标识符举例
例如,下面所列举的标识符是合法的:UserID
name
mode12
user_age
以下命名的标识符不合法:4word #不能以数字开头
try #try是保留字,不能作为标识符
$money #不能包含特殊字符
在 Python 中,标识符中的字母是严格区分大小写的,也就是说,两个同样的单词,如果大小格式不一样,多代表的意义也是完全不同的。比如说,下面这 3 个变量之间,就是完全独立、毫无关系的,它们彼此之间是相互独立的个体。number = 0
Number = 0
NUMBER = 0
Python 语言中,以下划线开头的标识符有特殊含义,例如:
·以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from…import* 的方式导入;
·以双下划线开头的标识符(如__add)表示类的私有成员;
·以双下划线作为开头和结尾的标识符(如 __init__),是专用标识符。
因此,除非特定场景需要,应避免使用以下划线开头的标识符。
另外需要注意的是,Python 允许使用汉字作为标识符,例如:亿速云 = “http://php.cn”
但我们应尽量避免使用汉字作为标识符,这会避免遇到很多奇葩的错误。
标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:
·当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等。
·当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book 等。
·当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为 Book。
·模块内部的类名,可以采用 “下划线+首字母大写” 的形式,如 _Book;
·函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割;
·常量命名应全部使用大写字母,单词之间可以用下划线分割;
有读者可能会问,如果不遵守这些规范,会怎么样呢?答案是程序照样可以运行,但遵循以上规范的好处是,可以更加直观地了解代码所代表的含义,以 Book 类为例,我们可以很容易就猜到此类与书有关,虽然将类名改为 a(或其它)不会影响程序运行,但通常不这么做。
变量
定义:从形式上看,每个变量都拥有独一无二的名字,例如 a=1
a为变量,1 为值。
从底层看:程序中的数据都要放在内存条内,变量就是这块内存的名字。
1.Python 变量的概述:
变量,英文叫做 Variable。
从形式上看,每个变量都拥有独一无二的名字,例如 a=1
a为变量,1 为值。
从底层看:程序中的数据都要放在内存条内,变量就是这块内存的名字。
2.Python 变量的命名
变量名是标识符的一种,不能随便起,必须要遵守 Python 标识符命名规则,
简单理解:
标识符就是一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。
就好像我们人一样,需要起个名字,便于称呼、指代。
标识符命名规则:(简称驼峰命名)
标识符是由字母(A–Z 和 a–z)、下划线和数字组成。如果标识符中出现除了这 3 类字符之外的其他字符,就肯定是不合法标识符。
标识符的第一个字符不能是数字。
标识符不能和 Python 关键字相同。
标识符中的字母是严格区分大小写的。
以下划线开头的标识符有特殊含义,除非特定场景需要,应避免使用以下划线开头的标识符。
标识符可以是汉字。但我们应尽量避免使用汉字作为标识符,这样会避免遇到很多没必要的错误
3.Python 变量赋值
3.1 Python 变量赋值概述
Python 变量的赋值指的是将数据放入变量的过程。
Python 变量无须声明数据类型就可以直接赋值,对一个不存在的变量赋值就相当于创建(定义)了一个新变量,换句话说 Pyhton 创建变量就必须赋值。
Python 变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为字符串,一会儿被赋值为整数。
3.2 Python 变量的基本赋值格式
3.3 Python 变量的其他赋值格式
3.3.1 同时给多个变量赋同一个值
3.3.2 同时给多个变量赋不同的值
4 Python 变量值得交换
5 查看变量的数据类型
查看变量的数据类型,用 Python 的内置函数 type()。
type() 函数返回的是对象的类型。
5.1 获取变量在内存中的 id 标识
a=b=1a=2print(id(a))print(id(b))print(id(a))# 结果986478659864786512345689
从以上代码可以看出,变量被重新赋值之后,内存地址将会发生变化。
Python是强语言类型还是弱语言类型?
Python 是强类型的动态脚本语言
强类型:不允许不同类型相加。例如:整形+字符串会 类型错误。
动态:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候。
脚本语言:一般是解释性语言,运行代码只需要一个解释器,不需要编译。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!