网淘巴来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Python标识符命名规范及保留字

2021-05-12 新闻来源:网淘巴 围观:587
''

一、Python标识符命名规范

  1. 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
  2. 标识符不能和 Python 中的保留字相同。有关保留字,后续章节会详细介绍。
  3. Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
    例如,下面所列举的标识符是合法的:

    UserID
    name
    mode12
    user_age

    以下命名的标识符不合法:

    4word    #不能以数字开头
    try          #try是保留字,不能作为标识符
    $money #不能包含特殊字符

  4. 在 Python 中,标识符中的字母是严格区分大小写的,也就是说,两个同样的单词,如果大小格式不一样,多代表的意义也是完全不同的。比如说,下面这 3 个变量之间,就是完全独立、毫无关系的,它们彼此之间是相互独立的个体。

    number = 0
    Number = 0
    NUMBER = 0

  5. Python 语言中,以下划线开头的标识符有特殊含义,例如:
    • 以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入;
    • 以双下划线开头的标识符(如__add)表示类的私有成员;
    • 以双下划线作为开头和结尾的标识符(如 __init__),是专用标识符。
    因此,除非特定场景需要,应避免使用以下划线开头的标识符。

概念:保留字是python语言预先保留的标识符,在程序中有特定用途,不能用来作为变量名,函数名使用;保留字大小写敏感,除开 False,True,None

二、保留字

python获[文]取关键字列表

Python 3.7.9 (bundled)
>>> import keyword
>>> print(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']
>>> 
保留字详解
1、True和False
布尔类型变量取值,True为真,False为假

is_1 = True
is_2 = False

2、if, elif 和else
判断语句,条件分支语句

if score < 60:
    print(“不及格”)
elif score < 80:
    print("不够优秀")
else:
    print("挺棒")
3、in
判断是否在其中,比如是否在列表中

2 in [1,2,3,4]
4、del
delete 删除一个变量,或者删除列表中某个元素

a = "hello, world!"
b = hello

del b 
print(a)   #  hello, world!

list = [1, 2, 3, 4, 5, 6]
del list[1]
print(list)   # [1, 3, 4, 5, 6]
5、for \ while 和break \ continue
构造循环语句

continu[章]e继续,即跳过[来]循环,立即执行[自]下一次循环

break 退出循环语句

for i in [1,2,3,4,5,6]:
    if  i == 2:
        continue
    if i == 4:
        break 
    print(i)    # 1 3   这里跳过了i==2,并且在i==4的时候结束了循环
6、and or 和not
与或非

and与 有一个Fals[网]e,结果为Fa[淘]lse

or 或 只有一个Fal[巴]se,结果为T[文]rue

not非

7、def return 和yield
def 定义函数,return用于从函数中返回,可以带有一个值

yield生成[章]器,当函数中用[来]了yield,[自]解释器会把函数[网]解释为生成器

# def   return 应用
def feb(max):
    a, b = 1, 1
    while a < max:
        yield a
        a, b = b, a + b

for i in feb(20):
    print(i)     # 生成器写一个斐波那契数列
# yield 应用
def foo():
    print("hello world!")
    return 

def square(num):
    return num*num 

foo()  # hello world! 
print(square(5))  # 25
8、class 定义类
面向对象的程序设计

class Cat:
    def __init__(self, name):
        self.__name = name

    def miaow(self):
        print(self.__name + " is miaow....")


cat = Cat("tom")
cat.miaow()
9、from , import 和as
from … import … as …

从 。。。导入。。[淘]。指定别名为。[巴]。。

10、assert
计算一个布尔值,断言成立,程序继续执行,断言失败,停止执行,打印出AssertError 以及指定的字符串

多用于调试, 注意不能用来替[文]代if判断语句[章]

x = 24
assert x % 2 == 1, "ok"

Traceback (most recent call last):
  File "C:********/study.py", line 2, in <module>
    assert x % 2 == 1, "ok"
AssertionError: ok
11、is
判断变量是否引用同一对象

判断对象id是[来]否相同

12、pass
空语句,用于占位符,保持程序完整
x = 10
if x > 8:
    print("ok")
else:
    pass 
13、None
None表示变量是控制

14、try , except 和finally
try用于捕获异常,出现异常的时候 执行except后面的语句,没有异常就执行else后面的语句

无论是否出现异[自]常都是执行fi[网]nally后面[淘]的语句

x = 2
try:
    print("Let's try 0 / 0")
    x = x / 0
except:
    print("one exception")
else:
    print("no exception")
finally:
    print("this sentence must be read")
15、with和as
当with语句进入时,会执行对象的__enter__()方法,该方法返回的值会赋值给as指定的目标;当with语句退出时,会执行对象的__exit__()方法,无论是否发生异常,都会进行清理工作。

16、global
定义并通知python后面的变量是全局变量,不要定义一个新的局部变量

x = 6
def local_x():
    x = 7
    print("x in func = " + str(x))

local_x()   # x in func = 7
print("global x = " + str(x))   # global x = 6

print("")

def global_x():
    global x    # 定义x是全局变量
    x = 7
    print("x in func = " + str(x))

global_x()  # x in func = 7
print("global x = " + str(x))  # global x = 7

17、lambda
定义表达式,匿名函数

a = lambda x,y: x+y
print(a(1,2))  # 3 
1
2
18、async 和 await
参考廖雪峰老师的解释:
可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。

为了简化并更好[巴]地标识异步IO[文],从Pytho[章]n 3.5开始引入[来]了新的语法as[自]ync和awa[网]it,可以让c[淘]oroutin[巴]e的代码更简洁[文]易读。

请注意,asy[章]nc和awai[来]t是针对cor[自]outine的[网]新语法,要使用[淘]新的语法,只需[巴]要做两步简单的[文]替换:

把@asyncio.coroutine替换为async;
把yield from替换为await。
————————————————
原文链接:https://blog.csdn.net/qq_43029072/article/details/103165800

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

本文链接:https://www.wtao8.com/post/59.html 转载需授权!

分享到:

相关文章

龙年
大发