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

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

FalseNoneTrue andasassertbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambdanonlocalnotorpassraisereturntrywhilewithyield

依次扼要说明一下:

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