关键字

查看关键字

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 
下一页