zoukankan      html  css  js  c++  java
  • python 函数(三)

    函数

    特点:复用性强,可以重复完成某个功能的代码块。

    语法:define 定义

    提高函数的复用性-------实现参数化(定义时:形参/位置参数,调用时:实参)

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

    #函数代码块

    函数的调用: 函数名()

    例子

    def hi():

        print("hello world!")

    hi()

    结果 hello world

    def hi(name,content):

        print("{0}说:{1}".format(name,content))

    hi('张三',"hello world!")

    结果 张三说:hello world!

    注:

    1. 函数可无参数可多个参数。
    2. 定义函数时,有几个参数调用时就要传几个参数。
    3. 默认参数,位置必须放在位置参数的后面否则报错
    4. 默认参数可以设置多个
    5. 调用函数的时候,按顺序赋值
    6. 调用函数时可以强制指定参数的赋值。
    7. return关键字 返回一个值给调用者,使用变量接收,函数结束的标志,-灵活调用函数

    写函数步骤:

    ①先用零散的代码写出功能。(选取一组数据完成功能)

    ②把代码变成一个函数def 函数名()

    ③利用方法提高函数的复用性

    例子:求和

    def add(m,n):

        sum=0

        for item in range(m,n+1):

            sum+=item

        print(sum)

    add(1,100)

    参数:两种参数:动态参数和关键字参数

    ①动态参数 *args  arguments 不定长参数

    例子:

    def add(*args):

        print("数据类型为:",type(data))

        sum=0

        for item in args:

            sum+=item

        return(sum)

    data=[1,2,3,4]

    res=add(*data)  #加一个*掉一层,元组类型

    print(res)  

    结果

    数据类型为: <class 'list'>

    10

    ②关键字参数(指针对字典就行处理):传递参数时 形式为字典形式即: key=value 形式  要求形式以字典形式传入时使用

    例子:

    def dict_datas(**kwargs):

        print("kwargs的值是",kwargs)

        print("kwargs的类型是:",type(kwargs))

    dict_datas(name="张三",age=18)

    结果

    kwargs的值是 {'name': '张三', 'age': 18}

    kwargs的类型是: <class 'dict'>

    def dict_datas(**kwargs):

        print("kwargs的值是",kwargs)

        print("kwargs的类型是:",type(kwargs))

    d={"name":"李四","age":20}

    dict_datas(**d)

    结果

    kwargs的值是 {'name': '李四', 'age': 20}

    kwargs的类型是: <class 'dict'>

    注:

    1.动态参数和关键字参数不传值也可以调用函数,结果为空值。位置参数调用时必须有实参传入。

    2.参数的混合使用,默认值参数放到位置参数后和动态参数无关,不能放在关键字参数之后,一般:位置参数--默认参数--动态参数--关键字参数。

    例子

    def datas(a,b,c=1,*args,**kwargs):

    print("a+b+c的和是:",a+b+c)

        print("*args的值是:",args)

        print("**kwargs的值是:",kwargs)

    datas(1,2,3,4,5,6)

    结果

    a+b+c的和是: 6

    *args的值是: (4, 5, 6)

    **kwargs的值是: {}

    def datas(a,b,c=1,*args,**kwargs):

        print("a+b+c的和是:",a+b+c)

        print("*args的值是:",args)

        print("**kwargs的值是:",kwargs)

    datas(1,2,3,x=2)

    结果

    a+b+c的和是: 6

    *args的值是: ()

    **kwargs的值是: {'x': 2}

    3. 变量的范围   局部变量和全局变量

    ①局部变量和全局变量同时存在时函数优先调用局部变量

    a=7

    def add(b):

        a=10

        print("函数内部a的值:",a)

        print("b的值是:",b)

    add(100)   

    结果

    函数内部a的值: 10

    b的值是: 100

    ②局部变量只能在函数内部调用不能在函数外部使用。

    ③如果函数内部涉及到修改全局变量,必须在修改前进行声明。global声明它为全局变量

    4. 函数间的相互调用

  • 相关阅读:
    各种读取速度
    索引倒排
    清空mysql数据
    java随机读取文件
    移动文件
    输出字符串数组
    背包问题
    使用bloomfilter
    使用hash拆分文件
    判断文件的编码格式
  • 原文地址:https://www.cnblogs.com/an-ning0920/p/11652982.html
Copyright © 2011-2022 走看看