关键字
查看关键字
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']
None
空值,没有值
help(None)
Help on NoneType object:
class NoneType(object)
| Methods defined here:
|
| __bool__(self, /)
| self != 0
|
| __repr__(self, /)
| Return repr(self).
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
赋值
a=None
判断条件
if None:
print('空值')
if not None:
print('非空')
非空
assert与raise
assert
Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。
断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,例如我们的代码只能在 Linux 系统下运行,可以先判断当前系统是否符合条件。
assert 表达式:
当判断表达式expression为真时,什么都不做;如果表达式为假,则抛出异常AssertionError。
assert expression [, arguments]
注意逗号不要忘了
后面的arguments代表了在AssertionError后面出现的错误说明内容
assert 2>1
assert 1>2
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-15-1e5504265e0c> in <module>
----> 1 assert 1>2
AssertionError:
assert 1>2 ,'1不大于2'
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-17-db086cedd510> in <module>
----> 1 assert 1>2 ,'1不大于2'
AssertionError: 1不大于2
##以下实例判断当前系统是否为 Linux,如果不满足条件则直接触发异常,不必执行接下来的代码:
import sys
assert ('linux' in sys.platform), "该代码只能在 Linux 下执行"
## 接下来要执行的代码
print('windows')
print(a)#错误代码,在前面条件不满足的情况下代码不会被运行
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-19-8ad0e9cd6269> in <module>
2
3 import sys
----> 4 assert ('linux' in sys.platform), "该代码只能在 Linux 下执行"
5
6 # 接下来要执行的代码
AssertionError: 该代码只能在 Linux 下执行
raise
Python 使用 raise 语句抛出一个指定的异常。
raise语法格式如下:
raise [Exception [, args [, traceback]]]
Exception:异常类
raise NameError('name')
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-21-1c9337a4f7ea> in <module>
----> 1 raise NameError('name')
NameError: name
try:
raise NameError('error')#raise异常就是发生了异常,所以try下的代码不会被执行
except:
print('see the error')
raise #查看try中的error
see the error
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-22-486a7901b98e> in <module>
1 try:
----> 2 raise NameError('error')#raise异常就是发生了异常,所以try下的代码不会被执行
3 except:
4 print('see the error')
5 raise #查看try中的error
NameError: error
async与await
携程
break与continue与pass
- break:结束所有循环
- continue:结束该次循环,跳到下一次循环
for i in range(5):
print(i)
if i==0:
break#第一次循环后就终止了
0
for i in range(5):
if i==0:
continue#第一次循环被跳过了
print(i)
1
2
3
4
if,else,elif
if 1:
print(1)
elif 2:
print(2)
else:
print(3)
1
print(1 if True else 3)
1 if False else 3
1
3
try,except,finally
try:
print(3/0)
except:
print('b')
else:
print('c')
finally:
print('d')
b
d
try:
print(3/1)
except:
print('b')
else:
print('c')
finally:
print('d')
3.0
c
d
for,while
for i in range(4):
print(i)
0
1
2
3
i=0
while i<4:
print(i)
i+=1
0
1
2
3
global,nonlocal
- global 在函数中声明全局变量,函数调用结束后,变量会被保存
- nonlocal 用于在嵌套函数内部使用变量,其中变量不应属于内部函数。
x='hello'
def gl():
global x
print(x)
gl()
hello
def no():
x='hello'
def chan():
nonlocal x
x='改变x的值'
chan()
return x
no()
'改变x的值'
and,or,not
逻辑关系
import ,from,as
导入模块
is,in
a=3
b=a
a is b
print(id(a))
print(id(b))
140721388888528
140721388888528
3 in [1,2,3]
True
with
上下文管理器
yield
生成器
生成器函数
包含yield语句的函数可以用来创建生成器对象,这样的函数也称生成器函数。
yield语句与return语句的作用相似,都是用来从函数中返回值。与return语句不同的是,return语句一旦执行会立刻结束函数的运行,而每次执行到yield语句并返回一个值之后会暂停或挂起后面代码的执行,下次通过生成器对象的__next__()方法、内置函数next()、for循环遍历生成器对象元素或其他方式显式“索要”数据时恢复执行。
生成器具有惰性求值的特点,适合大数据处理
def f():
a, b = 1, 1 #序列解包,同时为多个元素赋值
while True:
yield a #暂停执行,需要时再产生一个新元素
a, b = b, a+b #序列解包,继续生成新元素
a = f() #创建生成器对象
for i in range(10): #斐波那契数列中前10个元素
print(a.__next__(), end=' ')
1 1 2 3 5 8 13 21 34 55
for i in range(10): #再从斐波那契数列中取10个元素
print(a.__next__(), end=' ')
89 144 233 377 610 987 1597 2584 4181 6765
def f():
yield from 'abcdefg' #使用yield表达式创建生成器
x = f()
next(x)
next(x)
for item in x: #输出x中的剩余元素
print(item, end=' ')
c d e f g