判断
==
!=
and 与
or 或
in 在其中
not in 不在其中
requested_toppings = ['mushrooms', 'onions', 'pineapple']
'mushrooms' in requested_toppings
if
if:
elif:
else:
pass
注意
[] None ‘’ {} () 在判断时也属于False
if fun() 当函数fun() 没有return返回值的时候,返回的是None
for
for number in [23,41,12,16,7]:
print(number)#自动换行
#先定义一个元组
friends = ['steve', 'rachel', 'michael', 'adam', 'monica']
for index, friend in enumerate(friends):#enumerate()利用元组返回一个函数
print(index,friend)
#定义一个奇数空列表
even_numbers=[]
#定义一个偶数空列表
odd_numbers=[]
for number in range(1,51):#迭代从1到50
if number%2==0:
even_numbers.append(number)
else:
odd_numbers.append(number)
print("even number:",even_numbers)
print("odd number:",odd_numbers)
while
没什么特别的
for/while+else
从输出结果可以看出,使用 break 跳出当前循环体之后,该循环后的 else 代码块也不会被执行。但是,如果将 else 代码块中的代码直接放在循环体的后面(在不使用break的情况下),则该部分代码将会被执行。
http://c.biancheng.net/view/2241.html
注意!!!
单循环内,break 会直接跳过后面紧跟的else语句(正常执行,会继续执行后面的else语句)
http://c.biancheng.net/view/2243.html
双重循环+break
for i in range(5):
for j in range(5):
print(i, j)
if i == 3 and j == 3:
break
else:
continue
break
异常处理
语法错误、运行错误
http://c.biancheng.net/view/4593.html
try-except-else-finally
try:
pass
except Error1:
pass
except :
pass
except Exception as e:
pass
e.args
str(e)
repr(e)
else:
# 只有在try没有捕捉到异常的时候才会执行else
# 处理except异常后不执行else
pass
finally:
# finally 在有没有except和else的时候都可以
# 无论是否发生异常都执行finally语句
# 一般在这里进行资源手动回收
pass
except块捕获的异常信息可通过sys对象获取
- sys.exc_traceback 传播轨迹
- sys.exc_info() 传播信息
raise
raise
raise Error
raise Error('resion')
sys.exc_info()
except块捕获的异常信息可通过sys对象获取
- sys.last_traceback() 传播轨迹
- sys.exc_info() 传播信息
获取异常信息
- sys.exc_info()
- sys.last_traceback()
sys.exc_info() 返回异常信息元组,输出的元组信息中包括traceback对象
http://c.biancheng.net/view/4611.html
(异常名,异常实例,traceback对象)
其中traceback对象,要import traceback进行获取
traceback()
http://c.biancheng.net/view/2362.html
Exception 通常报错信息显示的是异常触发轨迹,记录了应用程序中执行停止的各个点。最后一行显示异常的类型和信息。
traceback.print_exc() #将传播轨迹信息输出到控制台或文件中
traceback.format_exc()# 将异常传播轨迹信息转换为字符串
import traceback
traceback.print_exc(sys.exc_type,sys.value,sys.exc_tb)
# traceback.print_exc() # 将异常传播信息输出到控制台
# traceback.print_exc(file=xxx) # 将异常传播输出到指定文件中
try:
pass
except:
traceback