可以参见 Python的安装帮助文档, 有各个module和语法的说明.
-
if bool_expr1:
-
suite1
-
elif bool_expr2:
-
suite2
-
else:
-
suite_else
-
-
缩编方式
-
expr1 if bool_expr else expr2
-
综合示例
-
print("{0} file{1}".format((count if count 1= 0 else "no"),("s" if count != 1 else "")))
-
while bool_expr:
-
while_suite
-
else: # 当 while_suite出现 return break exception时不出执行else, 否则 else总会执行.
-
else_suite
-
for expr in iterable:
-
for_suite
-
else: # 当 for_suite出现 return break exception时不出执行else, 否则 else总会执行
-
else_suite
-
try:
-
try suite
-
except exception_group1 as var1: #至少要包含一个 except 分支. exception_group1 可以是元组方式出现. 异常的佩佩规则为从上到下依次匹配.
-
except_suite1
-
...
-
else: #可选分支, 如果没有异常, 则 else 总会执行
-
else_suite
-
finally: #可选分支, 存在时,那么总会执行.
-
finally_suite
-
try:
-
suite
-
finally:
-
suite
-
自定义异常
-
class MyException(Exception): pass
-
-
try:
-
....
-
raise MyException()
-
except MyException:
-
print("MyException proc.")
-
函数的参数可以不用位置对应的顺序关系, 可以通过关键字参数 name=value的形式进行参数传递.
-
例如:
-
def calc(a,b,c=5): #有默认值的参数一定要定义在最后面
-
return (a+b)/c
-
-
calc(1,2)
-
calc(1,2,5)
-
calc(1,b=2, c=5)
-
calc(a=1,c=5, b=2)
-
calc(c=5,a=1, b=2)
-
都是一样的
-
函数的参数可以使用*序列拆分操作符, 常用于参数是可变数量的位置参数是. (**是对映射进行拆分, 如字典, 指明参数为字典类型)
-
例如:
-
-
def myCrc(*args): #args 前 加入 *, 代表 args 可以是一个元组. 参数数量随着args数据项数量变化而变化
-
result = 1
-
for arg in args:
-
result *= arg
-
return result
-
-
那么 myCrc(1,2,3,4)
-
myCrc(5,8)
-
myCrc(11) 都是允许的
但存在默认参数时. 例如
def muCrc2(*args, init_v=2):
result = init_v
for arg in args:
result *= arg
return result
则 myCrc2(5,8) => 80, 即把5,8全部认为是 *args 扩展的内容. 如果要改变默认参数的值, 一定要指明名称参数如 myCrc2(5,8, init_v=5)
把 * 当做参数时, 表明 * 之后不能再出现位置参数, 但关键字默认参数是可以的. 且关键字默认参数一定显示指明数值.
lambda 函数: 无需单独建立函数, 可直接定义函数实现并做为对象引用.
lambda parameters: expression parameters 可选. expression 不能用分支或者循环(但是,单行条件表达式可以用), 不能有return语句.
例如: fx=lambda x:"" if x==1 else "s", 后期直接调用 fx(count)即可.
常用场合
1. 用于组合类型的sorted() 函数, 例如 L.sort(key=lambda e:(e[1], e[2]))
2. 用户默认字典时. 当一个不存在的键来存取默认字典时, 使用lambda可以定义一个适当的默认值.
如:d = collections.defaultdict(lambda:-1) 当使用不存在的键存取 d 字典时, 则自动创建新项,并赋值 -1.
断言: 断言是给开发者用的, 而不是面对终端用户的
assert boolean_expr, option_expr
当 boolean_expr == False 时, 产生一个AssertionError异常, 如果有给定 option_expr, 则其结果用作 assertionError的参数.
阅读(1458) | 评论(0) | 转发(0) |