python3关键字及用法,一文读懂python3中的所有33个关键字及其用法

学习python,首先需要熟悉一下python的33关键字。

直接上表:(除前三个关键字,其余按字母表顺序排序)

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

依次扼要说明一下:

1. False。

python中的布尔类型,与True相对。

2. None。

None是python中特殊的数据类型'NoneType', None与其他非None数据相比,永远返回False;如下测试:

031f1e95ef17e79429b7e242190b0df3.png

3. True。

python中的布尔类型,与False相对。

4. and。

逻辑判断语句‘与’,and左右两边都为真,则判断结果为真,否则都是假。

e3a7df33e38c9aa9d597b32b07949e21.png

5. as。

1) import numpy as np;将用一个简短的np来替代numpy;

3b0872dba7efa3b888832939e02bacac.png

ca2e500853e8caa600fe0e2f147d87b2.png

2)结合with...as使用。

demo:

file = open('b.txt','w')

with file as f:

data = f.write('你好,世界!\n')

f.close()

with open('b.txt','r') as f:

data = f.read()

print(data)

a4086554ea77a1d7f96fdbf131ef6e04.png

6. assert。

python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。

assert的异常参数,其实就是在断言表达式后添加字符串信息,用来解释断言并更好的知道是哪里出了问题。格式如下:

assert expression [, arguments]

assert 表达式 [, 参数]

demo:

97fe77475b75a934ebbd1b5f2962d668.png

7. break。

跳出循环语句。

demo:

for i in range(4):

print("-----%d-----" %i)

for j in range(5):

if j > 2:

break

print(j)

0c7cd265141f2ef18fe648b11989d26b.png

8. class。

python里面的类定义。主要是封装,继承,多态的一些使用。

class Person(object):#(括号内为父类,object类是所有类的父类)

def __init__(self,name,age): #构造函数,类似于java中的this,

# 需要把self放在类实例方法的第一个参数

self.name = name

self.age = age

obj = Person("lanluyu", 26) #将name和age封装成类,并赋予对象obj。

9.  continue。

跳出当此循环,在当此循环后面的语句则不执行;

demo:

for i in range(10):

if i ==3:

print('{:^20}'.format('lanluyu'))

continue

print('{:^20}'.format(i))

print('{:^20}'.format('end'))

上面的format中的含义是使其在一定宽度中居中,详细细节可参考:https://blog.csdn.net/lanluyug/article/details/80245220

50b53c5dc9fdcde508ff1e2fe61866d3.png

10. def。

python中的函数定义

def add(a,b):

print('{:^20}'.format(a+b))

add(1,2)

4a415a15f6b7b65a8f795c37e3e9107d.png

11. python和java类似,具备GC机制,当数据没指向时,会将数据回收;而del关键字只是删除变量。

a = 1

b = a

del a

print('{:^20}'.format(b))

print('{:^20}'.format(a))

结果能打印b的值,但a变量已不存在。

a85c3f68ea13b8dcebfe6e11ded3ef62.png

12. elif。

在条件语句中和if一起使用,相当于c中的else if;

age = 26

if age > 60:

print('{:^20}'.format("老人"))

elif age >30:

print('{:^20}'.format("中年人"))

else:

print('{:^20}'.format("祖国的花朵"))

ad176602e719ac43fb45559c0f4c9166.png

13. else。

与if联合使用。同上。

14. except。

python中的异常机制关键字。和try结合使用。

try:

fh = open("testfile", "w")

fh.write("这是一个测试文件,用于测试异常!!")

except IOError:

print("Error: 没有找到文件或读取文件失败")

else:

print("内容写入文件成功")

fh.close()

f8230f0c125091148a06dca9192d9853.png

15.  finally。

异常机制中与try使用。且无论try语句中是否抛出异常,finally语句块一定会被执行。

try:

fh = open("testfile", "w")

fh.write("这是一个测试文件,用于测试异常!!")

except IOError:

print("Error: 没有找到文件或读取文件失败")

else:

print("内容写入文件成功")

finally:

fh.close()

print("文件关闭成功")

78a28bd8a746b3cf8104e55fad1e204f.png

16. for。

循环语句。

for i in range(10):

print('{:^20}'.format(i))

97847ff6ac0bc89b09e81b640c19acb4.png

17. from。

导入模块的变量或函数。可参考上述2.as中的示例。

需要注意的是,使用from导入的变量容易被覆盖,而import则不会发生这种情况;

4bc01c77f399c1bd04249eee9b09861a.png

18. global。

用处:一般在局部或函数内对全局变量进行修改,须在局部用global声明变量,不然无法修改。

#global关键字(内部作用域想要对外部作用域的变量进行修改)

num = 1

def fun():

global num

num = 123

print(num)

fun()

print(num)

8ba896db6188cdd165002643d1efc5d3.png

19. if。

条件语句。参考12.elif。

20. import。

导包操作。参考5. as。

21. in。

判断键是否存在与字典中。

dict = {'Name': 'lanluyu', 'Age': 26}

# 检测键 Age 是否存在

if 'Age' in dict:

print("键 Age 存在")

else :

print("键 Age 不存在")

9ce9394ca4e41258e8687cea01e54e01.png

22. is。

is关键字是判断两个变量的指向是否完全一致,及内容与地址需要完全一致,才返回True,否则返回False。

python中的is通常与==一起分析;==通常只是对内容进行对比,一致则返回True。

21f736d847382b3eef8bb5a653a04430.png

23. lambda。

匿名函数,此关键字可以用一行实现一个函数。

# 可写函数说明

sum = lambda arg1, arg2: arg1 + arg2

# 调用sum函数

print ("相加后的值为 : ", sum( 10, 20 ))

print ("相加后的值为 : ", sum( 20, 20 ))

880d357f0386fa7f384da76a9b4eed5a.png

24. nonlocal。

nonlocal是在Python3.2之后引入的一个关键字,它是用在封装函数中的,且一般使用于嵌套函数的场景中。

在Python 2.x中,闭包只能读外部函数的变量,而不能改写它。

def a():

x = 0

def b():

print(locals())

y = x + 1

print(locals())

print(x, y)

return b

a()()

685e277585776001cb71b0de14856465.png

def a():

x = 0

def b():

nonlocal x

x += 1

print (x)

return b

a()()

1de63d4dc14a3515ea1edf1460563b9f.png

25. not。

逻辑操作符,‘非’;

‘and’、‘or’和‘not’的优先级是not>and>or;

非0或者非False才返回True。

829ad47db1a561d62452f47dd4097904.png

26. or。

逻辑操作符,‘或’;

或运算符会触发短路现象,即第一个条件为真,则返回第一个条件的值;

a78b01bd3ffd82cee9974425ded8b75b.png

27. pass。

一般使用在空函数上,占位符。

def sample(n_samples):

pass

当一个函数的具体实现没有策划好时,可以用pass来设置空函数。

28. raise。

python异常机制。有时候python自带异常不够用,如同java,python也可以自定义异常,并且可以手动抛出,raise关键字就是python主动抛异常设定的关键字。

一段主动抛异常的完整示例:

class CustomError(Exception):

def __init__(self,ErrorInfo):

super().__init__(self) #初始化父类

self.errorinfo=ErrorInfo

def __str__(self):

return self.errorinfo

if __name__ == '__main__':

try:

raise CustomError('客户异常')

except CustomError as e:

print(e)

29. return。

保留函数最终的值,并终结程序运行;

45eac9c2ebadcf783745af209ee890e3.png

30. try。

python异常机制。可参考except,finally关键字。

31. while。

循环语句。while 后接条件,若条件为真则运行后面的代码块。

x = 5

while(x>0):

print('{:^20}'.format(x))

x = x - 1

8e118ba39e89d1f904f25cc593d70877.png

32. with。

一般结构为with...as的使用方式。

with后面返回的对象要求必须两__enter__()/__exit__()这两个方法,而文件对象f刚好是有这两个方法的,故应用自如。

可通过重写上述两个函数修改

class Test:

def __enter__(self):

print('__enter__() is call!')

return self

def dosomething(self):

x = 1/0

print('dosomethong!')

def __exit__(self, exc_type, exc_value, traceback):

print('__exit__() is call!')

print(f'type:{exc_type}')

print(f'value:{exc_value}')

print(f'trace:{traceback}')

print('__exit()__ is call!')

return True

with Test() as sample:

sample.dosomething()

33. yield。

任何使用yield的函数都称之为生成器,而生成器通常可理解成迭代器。

如下,在python3.4.3之后需要使用__next__()来取下一个值。

da5489d1c15b1c1d525fc4429156b422.png

参考文献:

【1】class参考。 https://www.cnblogs.com/chengd/articles/7287528.html

【2】break和continue参考。https://www.cnblogs.com/lijunjiang2015/p/7733859.html

【3】异常处理参考 https://www.runoob.com/python/python-exceptions.html

【4】nonlocal参考 https://blog.csdn.net/chain2012/article/details/7415602

【5】raise参考文献 https://blog.csdn.net/skullFang/article/details/78820541

【6】with参考 https://blog.csdn.net/lxy210781/article/details/81176687

【7】yield参考 https://blog.csdn.net/zxpyld3x/article/details/79181834

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值