zoukankan      html  css  js  c++  java
  • 函数

    1、为什么要有函数?什么是函数?
    用来解决:
    1)、组织结构不清晰,可读性差
    2)、代码冗余,有许多需要重复使用的代码。
    3)、管理维护程序与程序的扩展型。

    具备某一个功能的工具就是程序的中函数
    事先准备工具的过程就是函数的定义
    拿来就用就是在函数的调用。

    牢记!!!!
    所以函数的使用必须遵循:先定义,再调用!!!!!
    #定义函数:
    '''
    1、语法
    def 函数名(参数1,参数2,...):
    """
    文档描述
    """
    代码1
    代码2
    代码3
    return 值

    def:定义函数的关键字
    函数名:是用来调用函数的,
    函数名的命名必须能反映出函数的功能
    文档描述:推荐写上,来增强函数的可读性
    代码块:函数的功能实现代码
    return:函数的返回值

    '''

    #1.1 定义阶段
    # def print_sym(sym,count): # print_sym=<function print_msg at 0x000001B2A33698C8>
    # print(sym*count)
    #
    # def print_msg(msg):
    # print('33[045m%s33[0m' %msg)

    #1.2 调用阶段:函数名加括号就是在调用函数

    # print(print_sym)
    # print_sym('#',30)
    # print_msg('hello egon')
    # print_sym('#',30)


    #2 定义函数的三种类型:
    #2.1 有参函数:参数是函数体代码用来接收外部传入值的
    # 示例:
    # def max2(x,y): #x,y就是用来收外部输入的参数.
    # # x=10
    # # y=3
    # if x > y:
    # print(x)
    # else:
    # print(y)
    #调用:
    # max2(100,101)
    #结果,打印101

    #2.2 无参函数:当函数体的代码逻辑不需要函数的调用者掺入值的情况下,就无参
    #示例1.
    # def func():
    # print('----------------------')
    # print('---soft run-----------')
    # print('----------------------')
    #示例2.
    # def interactive():
    # name=input('username>>: ').strip()
    # pwd=input('password>>: ').strip()
    # print(name,pwd)
    #
    # interactive() #定义时无参,意味着调用时也无须传入参数


    #小练习:
    # uname_of_db='egon'
    # pwd_of_db='123'
    #
    # def interactive():
    # uname_of_inp=input('username>>: ').strip()
    # pwd_of_inp=input('password>>: ').strip()
    # return uname_of_inp,pwd_of_inp
    # def auth(uname,pwd):
    # if uname == uname_of_db and pwd == pwd_of_db:
    # print('登陆成功')
    # else:
    # print('登陆失败')

    # interactive()
    # # auth()
    # res=interactive()
    # # x=res[0]
    # # y=res[1]
    # print(res)
    # print(y)
    #
    # auth(x,y)

    #2.3 空函数:函数体为pass
    #主要用来设计代码结构.

    调用函数:
    函数的使用必须遵循:先定义,后调用的原则
    #注意:没事先定义函数而直接调用,就相当于在引用一个不存在的变量名
    #定义阶段:在定义阶段只检测语法,不执行函数体代码
    #调用阶段:根据函数名找到函数的内存地址,然后执行函数体代码
    #示例1.

    # def func():
    # xxx
    # print('sadfsadf'(语法错误..)



    #函数名加括号即调用函数
    #示例2.
    # def bar():
    # print('from bar')
    #
    # foo()

    # #定义阶段
    # def foo():
    # print('from foo')
    # bar()
    #
    # def bar():
    # print('from bar')
    #
    # 调用阶段
    # foo()



    # #定义阶段

    # def foo():
    # print('from foo')
    # bar()
    #
    # foo() # 调用阶段
    #
    # def bar():
    # print('from bar')
    #由于 bar()没有定义故报错.

    # 调用函数的三种形式
    #1、直接调用
    # def func():
    # print('from func')
    #
    # func()


    #2、表达式形式,赋值.
    # def max2(x,y):
    # if x > y:
    # return x
    # else:
    # return y
    #
    # res=max2(10,3)
    # print(res)

    #3、当作另一个函数的传入.
    #
    # def max2(x,y):
    # if x > y:
    # return x
    # else:
    # return y

    # res=max2(10,3)*100
    # print(res)


    函数的返回值:
    什么时候应该有返回值:
    #函数体代码运行完毕后需要有一个返回结果给调用者

    #返回值有三种形式:

    #1 没有return,返回值None
    # def func():
    # pass
    #
    # res=func()
    # print(res)

    #2 return后跟一个值,返回该值本身
    # def func1():
    # return 1
    #
    # res=func1()
    # print(res)

    #3 return可以逗号分隔,返回多个值,会返回一个元组给调用者
    # def func2():
    # return 1,2,[1,2,3]
    #
    # res=func2()
    # print(res)


    # return注意点:
    #1、return返回值的值,没有类型限制
    #2、return是函数结束的标志,函数内可以写多个return,但
    #执行一次,函数就立刻结束,并把return后的值作为本次调用的返回值
    # 示例:
    # def func3():
    # print('first')
    # return 1
    # print('second')
    # return 2
    # print('third')
    # return 3
    #
    # res=func3()
    # print(res) #只打印出第一个return的值.
  • 相关阅读:
    ES6小点心第二弹——底部浮现弹窗
    ES6小点心之通用弹窗
    从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!
    【quickhybrid】如何实现一个Hybrid框架
    【开源】canvas图像裁剪、压缩、旋转
    优雅的H5下拉刷新【minirefresh】
    前端筑基篇(一)->ajax跨域原理以及解决方案
    钉钉开放与商业化团队前端大量招人
    AJAX请求真的不安全么?谈谈Web安全与AJAX的关系。
    【quickhybrid】iOS端的项目实现
  • 原文地址:https://www.cnblogs.com/yangwei666/p/8651586.html
Copyright © 2011-2022 走看看