Default and Flexible Argument
1.default arguments 预设参数
在调用函数的时候,给参数赋值了就用赋的值,没有就使用默认值
2.flexible arguments
- A *args
- *args 实质就是将函数传入的参数,存储在元组类型tuple
的变量args当中
- *args 实质就是将函数传入的参数,存储在元组类型tuple
def add_all(*args):
"""Sum all values in *args together."""
# Initialize sum
sum_all = 0
# Accumulate the sum
for num in args:
sum_all += num
return sum_all
- B**kargs **kargs 实质就是将函数的参数和值,存储在字典类型的kargs变量中
- *args必须位于**kwargs之前,因为positional arguments必须位于keyword arguments之前。
- 注意一*两**的区别
def print_all(**kwargs):
"""Print out key-value pairs in **kwargs."""
# Print out the key-value pairs
for key, value in kwargs.items():
print(key + ": " + value)
Lambda Functions 匿名函数
raise_to_power =lambda x, y: x ** y
raise_to_power(2, 3)
output: 8
fliter(function,argument):过滤函数
reduce()
Error Handling
def sqrt(x):
...: """Returns the square root of a number."""
...: if x < 0:
...: raise ValueError('x must be non-negative')
...: try:
...: return x ** 0.5
...: except TypeError:
...: print('x must be an int or float')
raise:举出错误方式,如这里就是x<0时,举出valueerror的错误
try:先尝试,如果有异常且是except x描述的x类型 则有一种处理方式, 每个try 至少有一个对应的except