标识符和关键字—Python编程从入门到精通(4)

发表于:2018-12-21 13:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:叶维忠    来源:51Testing软件测试网原创

  2.4、标识符和关键字
  标识符和关键字都是一种具有某种意义的标记和称谓,就像人的外号一样。在本书前面的演示代码中,已经使用了大量的标识符和关键字。例如,代码中的分号、单引号、双引号等就是标识符,而代码中的if、for等就是关键字。Python语言的标识符使用规则和C语言类似,具体说明如下所示。
  "第一个字符必须是字母或下划线(_)。
  "剩下的字符可以是字母和数字或下划线。
  "区分大小写。
  "标识符不能以数字开头;除了下划线之外,其他的符号都不允许使用。处理下划线最简单的方法是把它们当成字母字符。区分大小写意味着标识符foo 不同于Foo,而这两者也不同于FOO。
  "在Python 3.x中,非ASCII标识符也是合法的。
  关键字是Python系统保留使用的标识符,也就是说,只有Python系统才能使用,程序员不能使用这样的标识符。关键字是Python中的特殊保留字,开发者不能把它们用作任何标识符名称。Python的标准库提供了一个keyword模块。kwlist可以输出当前版本的所有关键字,其运行结果如下所示。
>>> import keyword     #导入名为"keyword"的内置标准库
>>> keyword.kwlist     #kwlist能够列出所有内置的关键字
['False', 'None', 'True', 'and', 'as', 'assert', '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语言中,常用的关键字如下所示。
  "and:用于表达式运算,表示逻辑与操作。
  "as:用于类型转换。
  "assert:断言,用于判断变量或条件表达式的值是否为真。
  "break:中断循环语句的执行。
  "class:用于定义类。
  "continue:继续执行下一次循环。
  "def:用于定义函数或方法。
  "del:删除变量或者序列的值。
  "elif:条件语句,与if else 结合使用。
  "else:条件语句,与if和elif结合使用。也可以用于异常和循环。
  "except:包括捕获异常后的操作代码,与try和finally结合使用。
  "for:循环语句。
  "finally:用于异常语句,出现异常后,始终要执行finally包含的代码块。与try、except结合使用。
  "from:用于导入模块,与import结合使用。
  "global:定义全局变量。
  "if:条件语句,与else、elif结合使用。
  "import:用于导入模块,与from 结合使用。
  "in:判断变量是否存在序列中。
  "is:判断变量是否为某个类的实例。
  "lambda:定义匿名函数。
  "nonlocal:用于标识外部作用域的变量。
  "not:用于表达式运算,表示逻辑非操作。
  "or:用于表达式运算,表示逻辑或操作。
  "pass:空的类、函数、方法的占位符。
  "print:输出语句。
  "raise:异常抛出操作。
  "return:用于从函数返回计算结果。
  "try:包含可能会出现异常的语句,与except、finally结合使用。
  "while:循环语句。
  "with:简化Python的语句。
  "yield:用于从函数依次返回值。
  注意:以下划线开始或者结束的标识符通常有特殊的意义。例如,以一个下划线开始的标识符(如"_foo")不能用from module import语句导入。前后均有两个下划线的标识符(如__init__)被特殊方法保留。前边有两个下划线的标识符(如__bar)用来实现类私有属性,这将在本书后面类与面向对象的内容中讲到。通常情况下,应该避免使用相似的标识符。
  2.5、变量
  常量是和变量相对的,在计算机编程语言中,其值永远不会发生变化的量是常量,其值不能改变是指不会随着时间的变化而发生变化的量。因为种种原因,Python并没有提供如C/C++/Java一样的const修饰符。也就是说,在Python语言中没有常量。
  而变量则和常量恰恰相反,是指其值在程序的执行过程中可以发生变化的量。变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以存储在内存中。常量是一块只读的内存区域,常量一旦初始化就不能改变。
  Python语言中的变量不需要声明,变量的赋值操作即是声明和定义变量的过程。每个变量在内存中创建都包括变量的标识、名称和数据这些信息。
  注意:要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着读者编写的程序越来越多,并开始阅读别人编写的代码,将越来越善于创建有意义的变量名。
  实例2-3 输出变量的值
  源码路径 daima\2\2-3
  实例文件bianliang.py的具体实现代码如下所示。
x = 1              #定义一个变量x并为变量赋值
print(id(x))       #输出变量x的标识
print(x+5)         #使用变量
print("=========华丽的分割线=========")
x = 2              #定义一个变量x并为变量赋值
print(id(x))       #此时,变量x已经是一个新的变量
print(x+5)         #名称相同,但是使用的是新的变量x
x = 'hello python  '#将变量的值定义为一个文本字符串
print(id(x))       #函数id()的功能是返回对象的"身份证号"
print(x)           #现在会输出文本字符串
  在上述代码中对变量x进行了3次赋值,首先给变量x赋值为1,然后又重新给变量x赋值为2,接着又赋值变量x的值为"hello python"。在Python程序中,一次新的赋值将创建一个新的变量。即使变量的名称相同,变量的标识也并不同。执行后的效果如图2-6所示。
  值得读者注意的是,上述代码中的id()是Python中的一个内置函数,功能返回的是对象的"身份证号(内存地址)",唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。print(id(x))的功能是返回变量x的内存地址。
  另外值得读者注意的是,Python语言支持对多个变量同时进行赋值。
  实例2-4 同时赋值多个变量
  源码路径 daima\2\2-4
  实例文件tongshi.py的具体实现代码如下所示。
  a = (1,2,3)           #定义一个元组
  x,y,z = a             #把序列的值分别赋x、y、z
  print("x : %d, y: %d, z:%d"%(x,y,z))  #输出结果
  在上述代码中,对变量x、y、z进行了同时赋值,最后分别输出了变量x、y、z的值。执行效果如图2-7所示。
  
  注意:在上述实例代码中用到了元组的知识,这将在本书后面的章节中进行介绍。

相关阅读:
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号