如何获得keyword的所有关键字:
import keyword
keyword.kwlist
执行结果:
>>> import keyword
>>> 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']
>>>
False:假
None:空
True:真
and:并
as:相当于
assert:断言
assert len(lists) >=5,'列表元素个数小于5'
assert 2==1,'2不等于1'
async:异步函数(协程)
async def async_function():
return 1
await:用来用来声明程序挂起,比如异步程序执行到某一步时需要等待的时间很长,就将此挂起,去执行其他的异步程序。
async def other_test(i):
r = requests.get(i)
print(i)
await asyncio.sleep(4)
print(time.time()-start)
return r
break:语句用来终止循环语句
class:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
continue:语句跳出本次循环,而break跳出整个循环
def:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
del:删除的是变量,而不是数据。参照
elif:
>>>num = 0
>>>if num > 0 :
>>> print '这个数比0大'
>>>elif num < 0 :
>>> print '这个数比0小'
>>>else :
>>> print '这个数是0'
else
except
except: #捕获所有异常
except: <异常名>: #捕获指定异常
except:<异常名1,异常名2):捕获异常1或者异常2
except:<异常名>,<数据>:捕获指定异常及其附加的数据
except:<异常名1,异常名2>:<数据>:捕获异常名1或者异常名2,及附加的数据库
finally
def f():
try:
print 1
return 1
finally:
print 0
return 0
from:import会读取整个模块,所以必须进行定义后才能读取它的变量名;from将获取(或者是复制)模块特定的变量名。
global:如果在函数中没有再定义同名变量,可以在函数中当做全局变量使用
in:
letters = ['A','B','C','D','E','F','G']
if 'A' in letters:
print('A'+' exists')
if 'h' not in letters:
print('h'+' not exists')
lambda:
a,b = 5,3
func_list = [lambda x,y: x+y,lambda x,y: x-y,lambda x,y: x * y]
for func in func_list:
print(func(a,b))
nonlocal:关键字用来在函数或其他作用域中使用外层(非全局)变量。
pass:语句不做任何事情,一般用做占位
for letter in 'Python':
if letter == 'h':
pass
print('这是 pass 块')
else:
print('当前字母 :', letter)
raise:触发异常
我们可以使用raise语句自己触发异常
try:
s = None
if s is None:
print "s 是空对象"
raise NameError #如果引发NameError异常,后面的代码将不能执行
print len(s) #这句不会执行,但是后面的except还是会走到
except TypeError:
print "空对象没有长度"
s = None
if s is None:
raise NameError
print 'is here?' #如果不使用try......except这种形式,那么直接抛出异常,不会执行到这里
yield:python中有一个非常有用的语法叫做生成器,所利用到的关键字就是yield。有效利用生成器这个工具可以有效地节约系统资源,避免不必要的内存占用。参照
def fun():
for i in range(20):
x=yield i
print('good',x)
if __name__ == '__main__':
a=fun()
a.__next__()
x=a.send(5)
print(x)