一文读懂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;如下测试:
3. True。
python中的布尔类型,与False相对。
4. and。
逻辑判断语句‘与’,and左右两边都为真,则判断结果为真,否则都是假。
5. as。
1) import numpy as np;将用一个简短的np来替代numpy;
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)
6. assert。
python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
assert的异常参数,其实就是在断言表达式后添加字符串信息,用来解释断言并更好的知道是哪里出了问题。格式如下:
assert expression [, arguments]
assert 表达式 [, 参数]
demo:
7. break。
跳出循环语句。
demo:
for i in range(4):
print("-----%d-----" %i)
for j in range(5):
if j > 2:
break
print(j)
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
10. def。
python中的函数定义
def add(a,b):
print('{:^20}'.format(a+b))
add(1,2)
11. python和java类似,具备GC机制,当数据没指向时,会将数据回收;而del关键字只是删除变量。
a = 1
b = a
del a
print('{:^20}'.format(b))
print('{:^20}'.format(a))
结果能打印b的值,但a变量已不存在。
12. elif。
在条件语句中和if一起使用,相当于c中的else if;
age = 26
if age > 60:
print('{:^20}'.format("老人"))
elif age >30:
print('{:^20}'.format("中年人"))
else:
print('{:^20}'.format("祖国的花朵"))
13. else。
与if联合使用。同上。
14. except。
python中的异常机制关键字。和try结合使用。
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print("Error: 没有找到文件或读取文件失败")
else:
print("内容写入文件成功")
fh.close()
15. finally。
异常机制中与try使用。且无论try语句中是否抛出异常,finally语句块一定会被执行。
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print("Error: 没有找到文件或读取文件失败")
else:
print("内容写入文件成功")
finally:
fh.close()
print("文件关闭成功")
16. for。
循环语句。
for i in range(10):
print('{:^20}'.format(i))
17. from。
导入模块的变量或函数。可参考上述2.as中的示例。
需要注意的是,使用from导入的变量容易被覆盖,而import则不会发生这种情况;
18. global。
用处:一般在局部或函数内对全局变量进行修改,须在局部用global声明变量,不然无法修改。
#global关键字(内部作用域想要对外部作用域的变量进行修改)
num = 1
def fun():
global num
num = 123
print(num)
fun()
print(num)
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 不存在")
22. is。
is关键字是判断两个变量的指向是否完全一致,及内容与地址需要完全一致,才返回True,否则返回False。
python中的is通常与==一起分析;==通常只是对内容进行对比,一致则返回True。
23. lambda。
匿名函数,此关键字可以用一行实现一个函数。
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))
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()()
def a():
x = 0
def b():
nonlocal x
x += 1
print (x)
return b
a()()
25. not。
逻辑操作符,‘非’;
‘and’、‘or’和‘not’的优先级是not>and>or;
非0或者非False才返回True。
26. or。
逻辑操作符,‘或’;
或运算符会触发短路现象,即第一个条件为真,则返回第一个条件的值;
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。
保留函数最终的值,并终结程序运行;
30. try。
python异常机制。可参考except,finally关键字。
31. while。
循环语句。while 后接条件,若条件为真则运行后面的代码块。
x = 5
while(x>0):
print('{:^20}'.format(x))
x = x - 1
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__()来取下一个值。
参考文献:
【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)