zoukankan      html  css  js  c++  java
  • 函数的组成部分及函数参数

    一、函数

    1、概念

    重复利用的工具

    完成特定功能的代码块,函数就是存放代码块的容器

    2、定义函数的语法

    def   函数名(参数1 ,参数2,参数3,......)

           函数体

           return

    注:函数返回值也称之为函数值,就是函数执行的结果

           可以用变量接收/可以直接打印/可以直接使用

    3、函数的四大组成部分

    函数名:使用函数的依据

    函数体:完成功能的具体代码块

    函数返回值:功能完成返回的信息

    参数:实现功能需要的参数

    4、使用函数

    函数名()

    注:先定义后使用

    二、函数的分类

    1、从函数体进行分类

      空函数:项目之初,知道项目有哪些功能,但还没有明确功能体,可以用pass进行函数体填充

    def computed():
    pass
    非空函数:用函数体
    def add_num(n1, n2):

    return n1 + n2

    print(a)
    a = 10

    computed()

    res = add_num(10, 20)
    print(res)

    a = 50
    b = 100
    print(add_num(a, b))

    2、从参数列表进行分类

    无参函数:函数体运行不需要外界提供参数

    def print_msg():
    print("欢迎大家来到老男孩教育,奉献你的余生!!!")


    print_msg()

    函数体运行需要外界提供参数
    def print_school_msg(p1, p2):
    print("欢迎%s和%s领导莅临老男孩教育,敞开你的腰包!!!" % (p1, p2))


    p1 = input("输入一号领导名:")
    p2 = input("输入二号领导名:")
    print_school_msg(p1, p2)

    有参函数:函数体运行需要外界提供参数

    def print_school_msg(p1, p2):
    print("欢迎%s和%s领导莅临老男孩教育,敞开你的腰包!!!" % (p1, p2))


    p1 = input("输入一号领导名:")
    p2 = input("输入二号领导名:")
    print_school_msg(p1, p2)

    3、从返回值进行分类

    没有return的函数:默认在函数最后return  None

    def fn1():
    print('fn1 run!!!')
    res = fn1()
    print('没有return关键字的返回值:%s' % res) # None

    空return

    def fn2():
    print('fn2 run!!!')
    # return
    # return None

    res = fn2()
    print('空return关键字的返回值:%s' % res) # None
    无return函数与空return函数的区别
    空return:可以根据具体情况主动退出函数(像break结束循环一样)

    值返回

    # 一个值的返回
    def add_num(n1, n2):
    return n1 + n2
    print(add_num(10, 15))

    def computed(n1, n2):
    # 返回四则运算的结果
    r1 = n1 + n2
    r2 = n1 - n2
    r3 = n1 / n2
    r4 = n1 * n2
    return [r1, r2, r3, r4]

    a, b, c, d = computed(50, 25)
    print(a, b, c, d)


    # 多个值的返回: 本质就是返回装有多个值的元组
    def computed_sup(n1, n2):
    # 返回四则运算的结果
    r1 = n1 + n2
    r2 = n1 - n2
    r3 = n1 // n2
    r4 = n1 ** n2
    return r1, r2, r3, r4

    a, b, c, d = computed_sup(50, 25)
    print(a, b, c, d)

    res = computed_sup(50, 25) # 得到的是装有所有结果的元组
    print(res)

    三、函数的嵌套调用

    函数的嵌套调用:在一个函数体重调用另一个函数

    # 在解释过程中,不执行函数体,在函数被调用时,函数体才被执行
    def fn1():
    print('fn1 run')
    fn2()

    def fn2():
    print('fn2 run')
    fn3()

    def fn3():
    print('fn3 run')

    # 注:在fn1中调用了fn2,所以调用fn1的逻辑应该在fn2定义之后
    fn1()


    # 案例:用函数实现获取两个数的最大值
    def max_2(n1, n2):
    if n1 > n2:
    return n1
    return n2

    print(max_2(200, 30))

    获取三个数的最大值
    普通法
    def max_3(n1, n2, n3):
    if n1 > n2 and n1 > n3:
    return n1
    if n2 > n1 and n2 > n3:
    return n2
    return n3
    嵌套
    def max_3(n1, n2, n3):
    m2 = max_2(n1, n2)
    return max_2(m2, n3)

    print(max_3(300, 30, 30))

    四个数
    def max_4(n1, n2, n3, n4):
    m2 = max_2(n1, n2)
    return max_3(m2, n3, n4)
    print(max_4(10,30,20,0))

    四、指定文件名的文件复制

    def copy_img(target_img):
    with open('001.jpg', 'rb') as r, open(target_img, 'wb') as w:
    for line in r:
    w.write(line)


    copy_img('888.jpg')
    copy_img('999.jpg')

    def copy_file(source, target):
    '''
    :param source: 被复制的文件
    :param target: 复制得到的文件
    :return:
    '''
    with open(source, 'rb') as r, open(target, 'wb') as w:
    for line in r:
    w.write(line)

    copy_file('cmd.txt', 'aaa.txt')
    copy_file('temp.txt', 'ttt.txt')
  • 相关阅读:
    <玩转Django2.0>读书笔记:模板和模型
    <玩转Django2.0>读书笔记:URL规则和视图
    学习随笔:Vue.js与Django交互以及Ajax和axios
    <算法图解>读书笔记:第4章 快速排序
    <算法图解>读书笔记:第3章 递归
    <算法图解>读书笔记:第2章 选择排序
    <算法图解>读书笔记:第1章 算法简介
    PostgreSQL自学笔记:与python交互
    AS3 setInterval
    AS3 事件流
  • 原文地址:https://www.cnblogs.com/yangyinyin/p/10632619.html
Copyright © 2011-2022 走看看