【有书共读11】零压力学Python读书笔记06
第9章:高级函数技术
9.1 多个参数
def add(a, b): """ :param a: :param b: :return: """ print('sum is', a+b) return a + b add(1,3)9.2 多个返回值
# 多个返回值 多个返回值构成一个元组 import math PI = math.pi def fun(r): """ 返回圆的周长和面积 :param r: :return: """ l = 2 * PI * r s = PI * r * r if s<20: return l, s else: return s ans = fun(1) print(type(ans)) #输出结果为<class 'tuple'> print(ans) #输出结果为(6.283185307179586, 3.141592653589793) l, s = fun(4) print(l) print(s) """ 注意:对有2个及以上返回值的函数,我们可以只使用一个变量来接受返回值 这个时候这个参数得到的是函数所有返回值构成的一个元组 我们也可以使用和返回值数目相同的变量来接受返回值, 这个时候,每个变量得到是对应返回值的 但是,除此之外,需要注意变量和返回值数目不匹配的情况 例如,我们用两个变量来接受有三个返回值的函数的返回值时就会报错 """9.3 具名参数
# 具名参数 def add(a, b, c): print((a + b) * c) return (a + b) * c # 直接调用 add(1, 2, 3) # (1+2)*3==9 # 指定名称调用 add(a=2, b=2, c=3) # (2+2)*3==12 # 指定部分参数调用 # (1+2)*3==9 add(1, c=3, b=2) """ 注意: 具名参数必须在参数列表末尾指定,以常规方式传递的参数称为位置参数 """9.4 默认参数
# 默认参数 """ 默认参数就是在函数定义的时候已经给参数指定了默认值,如果函数调用的时候没有给该参数赋值 则使用定义时候的默认值,如果传入了对应的值,则使用传入的值 """ def pr_s(s, times=1): """ :param s: 需要输出的字符串 :param times: 输出的次数,这里面就是一个默认参数,如果调用时不传入times的值, 那么就输出一次 :return: """ for i in range(times): print(s) pr_s('This is a test') """ 输出结果为: This is a test """ pr_s('This is a test',3) """ 输出结果为: This is a test This is a test This is a test """ pr_s('This is a test',times=2) """ 这里面使用具名参数来指定也是可以的 输出结果为: This is a test This is a test """9.5 从模块中导入函数
# 从模块中导入函数 #模块导入语法 使用import import random #导入random模块 # 这样导入模块之后可以使用这个模块中的所用函数,但必须使用模块名进行限定 n = random.randint(1,4) # 我们也可以从模块中导入特定的函数 from random import randint x =randint(0,10) """ 使用 from module import * 可以引用模块下面的所用函数,但是不建议这么做,因为这样很容易引起名称冲突 """