【有书共读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 *
可以引用模块下面的所用函数,但是不建议这么做,因为这样很容易引起名称冲突
"""


#笔记##读书笔记##Python#
全部评论

相关推荐

点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务