python第二天和第三天

天池龙珠python第二天

第二天和第三天(条件语句与循环语句和异常处理)

条件语句

条件语句有
1.if expression:
expr_true_suite

只有当expression为正确时,expr_true_suite才会执行
2. if(expression):
expr_true_suite
else:
expr_flase_suites

当expression为正确时,执行expr_true_suite,错误时,执行else后的expr_flase_suites
3.if语句支持嵌套,即在一个if语句中嵌入另一个if语句,从而构成不同层次的选择结构。

【例子】Python 使用缩进而不是大括号来标记代码块边界,因此要特别注意else的悬挂问题。
python第二天和第三天
4.if - elif - else 语句
程序会判断是否符合if或者elif的条件,都不符合
则执行else里的,其中一个符合,执行其中一个,不管怎么样它只会执行其中一个
python第二天和第三天
assert
assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。

python第二天和第三天

循环语句

while循环:

while(布尔表达式):
语句体
当布尔表达式为真的时候,程序会一直执行语句体,直到布尔表达式为假,才会结束.
python第二天和第三天
注意布尔表达式为0便是假,非0为真

while-else循环:

while 布尔表达式:
语句体
else:
语句体
注意当while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容。
python第二天和第三天

for循环

for循环是一个迭代循环,相当于python的迭代器。

for 循环变量 in 可迭代对象:
语句块
每次循环都会把可迭代对象当前的元素交给循环变量,在语句块使用。
python第二天和第三天
可迭代对象有很多,包括:字典,数组
python第二天和第三天
items可以换成keys或者values来遍历键或者值

for-else循环

for 迭代变量 in 可迭代对象:
代码块
else:
代码块
它使用跟while-else一样,遇到不正常退出循环不执行else,正常退出循环则执行else

关键词range

range([start,] stop [,step=1])
range有三个参数,[]里的参数可有可无,但一定要有stop,从0开始到stop前一个数。
start:开始
stop:停止
step:步长,默认为一
python第二天和第三天

函数enumerate()

enumerate(sequence,[start=0])
sequence:一个序列,可迭代的对象
start:开始的下标
python第二天和第三天

break

break语句可以跳出当前所在层的循环。
python第二天和第三天

continue

continue 跳出当前的循环,继续下一轮循环

pass

pass语句的意思什么事情都不干,pass语句就是空语句
当程序中确定函数名,还不确定具体的实现,可以使用pass,使程序正常执行

推导式

列表推导式:
[ expr for value in collection [if condition] ]

python第二天和第三天
包含if的例子如下,把100以内是三和五倍数的,放在一个列表中:
python第二天和第三天
还有有多个for和if的列子:
python第二天和第三天
元组推导式:
(expr for value in collection [if condition])

[]表示可有可无
python第二天和第三天
字典推导式:
{ key_expr : value_expr for room in collection [ if condition ] }

例子:
python第二天和第三天
集合推导式:
{ expr for value in collection [ if condition ] }

例子:python第二天和第三天

其他推导式:
next(iterator [ ,default ])

iterator:一个可迭代对象
default:默认值
功能是迭代

例子:
python第二天和第三天

异常处理

异常体系内部有层次关系,python异常体系中的部分关系如下所示:
python第二天和第三天

常见的异常:

  • FloatingPointError:浮点计算异常
  • OverflowError:数值运算超出最大限制
  • ZeroDivisionError:除数为零
  • AssertionError:断言语句(assert)失败
  • AttributeError:尝试访问未知的对象属性
  • EOFError:没有内建输入,到达EOF标记
  • EnvironmentError:操作系统异常的基类
  • IOError:输入/输出操作失败
  • OSError:操作系统产生的异常(例如打开一个不存在的文件)
    -LookupError:无效数据查询的基类
  • IndexError:索引超出序列的范围
  • KeyError:字典中查找一个不存在的关键字
  • MemoryError:内存溢出(可通过删除对象释放内存)
  • NameError:尝试访问一个不存在的变量
    • NotImplementedError:尚未实现的方法
  • SyntaxError:语法错误导致的异常
  • IndentationError:缩进错误导致的异常
  • TabError:Tab和空格混用
    • UnicodeDecodeError:Unicode解码时的异常
  • UnicodeEncodeError:Unicode编码错误导致的异常
  • UnicodeTranslateError:Unicode转换错误导致的异常

try-except语句

try:
检测部分
except Exception[ as reason ]:
出现异常要执行的代码

如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中
例子:
python第二天和第三天
python第二天和第三天

一个try可能会有多个except子句,分别处理不同的特定的异常,最多只能一个分支被执行
python第二天和第三天
一旦try出现的异常,在多个except中都可以接收处理,但程序只会按最先那个except来处理,所以在使用多个except时,必须坚持对其规范排序,要从最具针对性的异常到最通用的异常。从最针对到普通的,如下图:
python第二天和第三天

一个 except 子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组。
例子如下:
python第二天和第三天

try-except-finally语句

try:
检测部分
except Exception[ as reason ]:
出现异常后执行的代码
finally:
不管怎么样都会执行的代码
之前在try-except中try出现了except无法接收处理的异常,会抛给try,但在try-except-finally中,会抛给finally,例子如下:
python第二天和第三天

try-except-else语句

如果try子句没有发生任何异常,python会执行else里的语句
try:
检测部分
except:
异常出现后要执行的语句
else:
如果没有任何异常,会执行的语句
例子:
python第二天和第三天
注意:使用else时,try要配套except来使用,不然会报错

raise语句

python 使用 raise语句抛出一个指定的异常。
例子
python第二天和第三天

第二天和第三天的总结

看似很简单,但还是要注重多用才行,多用才会记住,不然一旦时间长了,就会忘记,还要回来多看看,嗯,就这些。
上一篇:python异常捕获


下一篇:node-sass 安装失败 win32-x64-57_binding.node