一篇文章弄懂Python关键字、标识符和变量

目录
  • 前言
  • 🎪 一、Python 关键字
  • 🎢 二、Python标识符
    • 🎠 2.1 在 Python 中创建标识符的指南
    • 🎡 2.2 测试标识符是否有效
    • 🧵 2.3 标识符命名的最佳实践
  • 🎯 三、Python 变量
  • 总结

前言

本快速教程的目的是教您有关Python 关键字、标识符和变量的知识。这些是 Python 编程的基本构建块。因此,您必须了解有关它们的一切。

Python 关键字是一个独特的编程术语,旨在执行某些操作。Python 中有多达 35 个这样的关键字,每个都有不同的用途。他们一起构建了 Python 语言的词汇表。

它们代表 Python 程序的语法和结构。由于它们都是保留的,因此您不能使用它们的名称来定义变量、类或函数。

🎪 一、Python 关键字

关键字是保留并具有特定含义的特殊词。Python 有一组不能在程序中用作变量的关键字。

Python 中的所有关键字都区分大小写。因此,在代码中使用它们时必须小心。我们刚刚在这里捕获了可能的 Python 关键字的快照。

使用 Python Shell 显示 Python 关键字

这是一个很长的清单,需要一次性记住。我们在这里提到它的目的只是让您初步了解可用的关键字。但是,我们将在其余教程中介绍它们中的每一个。您无需急于记住它们,而是尝试逐步学习使用它们。

还有一点你应该注意,上面的列表可能会改变。该语言可以摆脱一些旧的关键字,并在未来的版本中引入新的关键字。
因此,要获取最新列表,您可以打开 Python shell 并运行以下命令,如下面的代码片段所示。

>>> import keyword
>>> keyword.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标识符

Python 标识符是用户定义的名称,用于表示变量、函数、类、模块或任何其他对象。如果您为 Python 中的可编程实体分配一些名称,那么它在技术上只是称为标识符。

Python 语言为程序员制定了一套规则来创建有意义的标识符。

🎠 2.1 在 Python 中创建标识符的指南

1.为了形成的标识符,使用的字母序列中任一小写 (a到z)或大写 (A至Z) 。但是,您也可以在编写标识符时混淆数字(0 到 9)或下划线 (_)。

例如-的名字,像 shapeClass,  shape_1和 upload_shape_to_db都是有效的标识符。

2.不能使用数字作为标识符名称的开头。它会导致语法错误。

例如 – 名称0Shape不正确,但 shape1是有效标识符。

3.此外,关键字是保留的,因此您不应将它们用作标识符。

>>> for=1
SyntaxError: invalid syntax
>>> True=1
SyntaxError: can't assign to keyword

4.Python 标识符也不能有特殊字符['.', '!', '@', '#', '$', '%']。禁止使用这些符号。

>>> @index=0
SyntaxError: invalid syntax
>>> isPython?=True
SyntaxError: invalid syntax

5.Python 文档说你可以有一个无限制长度的标识符。但这只是半真半假。

使用大名称(超过 79 个字符)会导致违反PEP-8标准设置的规则。它会提示

Limit all lines to a maximum of 79 characters.

🎡 2.2 测试标识符是否有效

您可以使用keyword.iskeyword()函数来测试 Python 标识符是否有效 。如果关键字正确,则返回“True”,否则 返回 “ False”。

请参考以下片段。

>>> import keyword
>>> keyword.iskeyword("techbeamers")
False
>>> keyword.iskeyword("try")
True
>>>

另一种检查标识符是否有效的有用方法是调用 str.isidentifier()函数。但它仅在Python 3.0及更高版本中可用。

>>> 'techbeamers'.isidentifier()
True
>>> '1techbeamers'.isidentifier()
False
>>> 'techbeamers.com'.isidentifier()
False
>>> 'techbemaers_com'.isidentifier()
True

🧵 2.3 标识符命名的最佳实践

  • 最好让类名以大写字母开头。所有其他标识符应以小写字母开头。
  • 使用('_')下划线作为首字母来声明私有标识符。
  • 不要使用 “_”作为标识符中的前导和尾随字符。由于 Python 内置类型已经使用了这种表示法。
  • 避免使用只有一个字符的名称。相反,取有意义的名字。

例如——虽然 i = 1 是有效的,但写 iter = 1 或 index = 1 会更有意义。

  • 您可以使用下划线将多个单词组合成一个合理的名称。

例如 – count_no_of_letters。

🎯 三、Python 变量

Python 中的变量代表一个实体,其值可以在需要时更改。从概念上讲,它是一个保存实际值的内存位置。我们可以通过查询实体从我们的代码中检索值。

但它需要为该内存位置分配一个标签,以便我们可以引用它。我们将其称为编程术语中的变量。

以下是有关 Python 变量的一些关键事实。这些将帮助程序员有效地使用它们。

1.变量不需要声明。但是,您必须在使用前对其进行初始化。

例如 -

test = 10

2.上述表达式将导致以下动作。

创建一个对象来表示值10。

如果变量(test)不存在,那么它将被创建。

将变量与对象关联,以便它可以引用值。

变量'test'是对值'10'的引用。请参考下图。

例如 -

| ~~~~~ | ----- ~~~~~~~~~ -------   ****
( test  ) ----- Reference ------- ** 10 **
| ~~~~~ | ----- ~~~~~~~~~ -------   ****
 Variable ----- ~~~~~~~~~~ -------  Object

3.每当表达式发生变化时,Python 都会将一个新对象(一块内存)与引用该值的变量相关联。旧的去垃圾收集器。

例如 -

>>> test = 10
>>> id(test)
1716585200
>>> test = 11
>>> id(test)
1716585232
>>>

4.此外,为了优化,Python 构建了一个缓存并重用了一些不可变对象,例如小整数和字符串。

5.一个对象只是一个内存区域,可以容纳以下内容。

实际的对象值。

反映对象类型的类型指示符。

确定何时可以回收对象的引用计数器。

6.拥有类型的是对象,而不是变量。但是,变量可以根据需要保存不同类型的对象。

例如 -

>>> test = 10
>>> type(test)
<class 'int'>
>>> test = 'techbeamers'
>>> type(test)
<class 'str'>
>>> test = {'Python', 'C', 'C++'}
>>> type(test)
<class 'set'>
>>>

总结

到此这篇关于Python关键字、标识符和变量的文章就介绍到这了,更多相关Python关键字、标识符和变量内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python 中的with关键字使用详解

    在 Python 2.5 中, with 关键字被加入.它将常用的 try ... except ... finally ... 模式很方便的被复用.看一个最经典的例子: with open('file.txt') as f: content = f.read() 在这段代码中,无论 with 中的代码块在执行的过程中发生任何情况,文件最终都会被关闭.如果代码块在执行的过程中发生了一个异常,那么在这个异常被抛出前,程序会先将被打开的文件关闭. 再看另外一个例子. 在发起一个数据库事务请求的时候,

  • Python中使用动态变量名的方法

    如果要写一个程序,让x1为1,x2为2,然后直到x100为100,你会怎么做? 在C这种静态语言里,变量名这个标识符实际上会被编译器直接翻译成内存地址,所以除了手动设置每个变量的值以外,没办法做到这点.而Python这种动态语言则是可以做到的. 最容易想到的自然是eval,但是实际上根本不需要这种危险的东西,因为Python的变量名就是一个字典的key而已.要获取这个字典,直接用locals和globals函数即可. 因此这个程序可以这样实现: 复制代码 代码如下: >>> names

  • python中的实例方法、静态方法、类方法、类变量和实例变量浅析

    注:使用的是Python2.7. 一.实例方法 实例方法就是类的实例能够使用的方法.如下: 复制代码 代码如下: class Foo:    def __init__(self, name):        self.name = name    def hi(self):        print self.name if __name__ == '__main__':    foo01 = Foo('letian')    foo01.hi()    print type(Foo)    p

  • python global关键字的用法详解

    最近刚好有朋友遇到个global相关的问题,这里简单学习一下global关键字的用法. 想要更好的了解global关键字,首先要熟悉python的全局变量与局部变量的概念.global关键字的作用是可以申明一个局部变量为全局变量,下面看一下实例 一.变量作用域的说明 这里简单提一下变量作用域的概念,有兴趣的小伙伴,可以查一下相关的博客 1.局部变量 def a(): ## 菊部变量 - ,- local = 1 print(local) ## 全局无法使用,只有自己可用 print(lobal)

  • python实现同时给多个变量赋值的方法

    本文实例讲述了python实现同时给多个变量赋值的方法.分享给大家供大家参考.具体分析如下: python中可以同时给多个变量赋值,下面列举了三种方法 # Assign values directly a, b = 0, 1 assert a == 0 assert b == 1 # Assign values from a list (r,g,b) = ["Red","Green","Blue"] assert r == "Red&q

  • python函数参数(必须参数、可变参数、关键字参数)

    #python中的函数定义,使用和传参 ###------------------- 必要参数 ------------------------------------- 必要参数,即函数调用时必须要传的参数, #下面进行举例说明 def helloWorld(a): print('输出:hello') if __name__ == '__main__': helloWorld("aaa") ## 必须要有参数 ##------------ 默认参数 -----------------

  • Python全局变量操作详解

    接触Python时间不长,对有些知识点,掌握的不是很扎实,我个人比较崇尚不管学习什么东西,首先一定回去把基础打的非常扎实了,再往高处走.今天遇到了Python中的全局变量的相关操作,遇到了问题,所以,在这里将自己遇到的问题,做个记录,以长记心!!! 在Python中使用全局变量,其实,个人认为并不是很明智的选择:但是自己还是坚信,存在便合理,在于你怎么使用:全局变量降低了模块和函数之间的通用性:所以,在以后的编程过程中,应尽量避免使用全局变量. 全局变量的使用: 方法一: 为了便于代码管理,将全

  • python标识符命名规范原理解析

    这篇文章主要介绍了python标识符命名规范原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量.函数.类.模块以及其他对象的名称. Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说: 1.标识符是由字符(A~Z 和 a~z).下划线和数字组成,但第一个字符不能是数字. 2.标识符不能和 Python 中的保留字相同.有关保留

  • Python通用唯一标识符uuid模块使用案例

    1. 背景知识: UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, 命名空间, 随机数, 伪随机数来保证生成ID的唯一性, 有着固定的大小( 128 bit ). 它的唯一性和一致性特点使得可以无需注册过程就能够产生一个新的UUID. UUID可以被用作多种用途, 既可以用来短时间内标记一个对象, 也可以可靠的辨别网络中的持久性对象. 为什么要使用UUID? 很多

  • 一篇文章弄懂Python中的内建函数

    目录 前言 A类 B类 C类 D类 E类 F类 G类 H类 I类 L类 M类 R类 S类 T类 总结 前言 python内建函数指的是python自带的函数,这种函数不需要定义,并且不同的内建函数具有不同的功能,可以直接使用. A类 abs() 函数,返回数字的绝对值. 语法:abs(x) 参数 x - 数值表达式 函数返回 x(数字)的绝对值; 例子1: all() 函数,判断给定的可迭代参数 ble 中的元素是否都为 True,若是返回 True,反之返回 False; 元素除了是 0.空.

  • 一篇文章弄懂Python中的可迭代对象、迭代器和生成器

    我们都知道,序列可以迭代.但是,你知道为什么吗? 本文来探讨一下迭代背后的原理. 序列可以迭代的原因:iter 函数.解释器需要迭代对象 x 时,会自动调用 iter(x).内置的 iter 函数有以下作用: (1) 检查对象是否实现了 iter 方法,如果实现了就调用它,获取一个迭代器. (2) 如果没有实现 iter 方法,但是实现了 getitem 方法,而且其参数是从零开始的索引,Python 会创建一个迭代器,尝试按顺序(从索引 0 开始)获取元素. (3) 如果前面两步都失败,Pyt

  • 一篇文章弄懂Python中所有数组数据类型

    前言 数组类型是各种编程语言中基本的数组结构了,本文来盘点下Python中各种"数组"类型的实现. list tuple array.array str bytes bytearray 其实把以上类型都说成是数组是不准确的.这里把数组当作一个广义的概念,即把列表.序列.数组都当作array-like数据类型来理解. 注意本文所有代码都是在Python3.7中跑的^_^ 0x00 可变的动态列表list list应该是Python最常用到的数组类型了.它的特点是可变的.能动态扩容,可存储

  • 一篇文章弄懂MySQL查询语句的执行过程

    前言 需要从数据库检索某些符合要求的数据,我们很容易写出 Select A B C FROM T WHERE ID = XX  这样的SQL,那么当我们向数据库发送这样一个请求时,数据库到底做了什么? 我们今天以MYSQL为例,揭示一下MySQL数据库的查询过程,并让大家对数据库里的一些零件有所了解. MYSQL架构 mysql架构 MySQL 主要可以分为 Server 层和存储引擎层. Server层 包括连接器.查询缓存.分析器.优化器.执行器等,所有跨存储引擎的功能都在这一层实现,比如存

  • 一篇文章读懂Python赋值与拷贝

    变量与赋值 在 Python 中,一切皆为对象,对象通过「变量名」引用,「变量名」更确切的叫法是「名字」,好比我们每个人都有自己的名字一样,咱们通过名字来代指某个人,代码里面通过名字来指代某个对象. 变量赋值就是给对象绑定一个名字,赋值并不会拷贝对象.好比我们出生的时候父母就要给我们取一个名字一样,给人取个绰号并不来多出一个人来,只是多一个名字罢了. 两个对象做比较有两种方式,分别是:is 与 == ,is比较的是两个对象是否相同,通过对象的ID值可识别是否为相同对象,==比较的是两个对象的值是

  • 一篇文章搞懂python的转义字符及用法

    什么是转义字符 转义字符是一个计算机专业词汇.在计算机当中,我们可以写出123 ,也可以写出字母abcd,但有些字符我们无法手动书写,比如我们需要对字符进行换行处理,但不能写出来换行符,当然我们也看不见换行符.像这种情况,我们需要在字符中使用特殊字符时,就需要用到转义字符,在python里用反斜杠\转义字符. 在交互式解释器中,输出的字符串用引号引起来,特殊字符用反斜杠\转义.虽然可能和输入看上去不太一样,但是两个字符串是相等的. 在python里,转义字符\可以转义很多字符,比如\n表示换行,

  • 一篇文章搞懂Python反斜杠的相关问题

    大家在开发Python的过程中,一定会遇到很多反斜杠的问题,很多人被反斜杠的数量搞得头大. 首先我们写一段非常简单的Python代码,它的作用是把一个字段先转换为JSON格式的字符串,然后把这个字符串再转换为JSON格式的字符串: import json info = {'name': 'kingname', 'address': '杭州', 'salary': 99999} info_json = json.dumps(info) # 第一次转换以后,打印出来 print(info_json)

  • 一篇文章搞懂Python Unittest测试方法的执行顺序

    目录 Unittest 回到主题 源码初窥 回到问题的本质 1. 以字典序的方式编写test方法 2. 回归本质,从根本解决问题 总结 Unittest unittest大家应该都不陌生.它作为一款博主在5-6年前最常用的单元测试框架,现在正被pytest,nose慢慢蚕食. 渐渐地,看到大家更多的讨论的内容从unittest+HTMLTestRunner变为pytest+allure2等后起之秀. 不禁感慨,终究是自己落伍了,跟不上时代的大潮了. 回到主题 感慨完了,回到正文.虽然unitte

  • 一篇文章弄懂JVM类加载机制过程以及原理

    目录 一.做一个小测试 二.类的初始化步骤: 三.看看你写对了没? 四.类的加载过程 五.类加载器的分类 1.启动类加载器(引导类加载器) 2.扩展类加载器 3.应用程序类加载器(系统类加载器) 六.类加载器子系统的作用 七.总结 一.做一个小测试 通过注释,标注出下面两个类中每个方法的执行顺序,并写出studentId的最终值. package com.nezha.javase; public class Person1 { private int personId; public Perso

随机推荐