zoukankan      html  css  js  c++  java
  • 函数(粗定义)

    函数
    把相对独立的某个功能抽象出来,使之成为一个独立的整体
    使用函数包括定义函数和调用函数(必须先定义再调动)
    定义函數:

    以def开头即可

    def function_name(name1,arg2):

                   function body

                   return value

    函数名(function_name):与Python其他标识命名规则相同,字母或下划线开头,后可跟字母,数字,下划线。函数名命名时应能反映函数所执行的任务

    Ps:函数名字母的大小写不同视为两个不同的函数

    函数参数(arg1,arg2):调用一个函数时可以传递的参数。可有一个或多个,也可没有

    函数内容(function body):有效代码都可以 但要注意函数内容要相对于定义函数def行需要缩进四个空格(tad)

    函数返回值(return value):函数执行后需要返回的值。也可以不反回任何内容,不反会内容则视为返回“none”

    def introduce(name):

                   print(“hello”,name)

    Introduce(“world”)

    >>hello world

    函数参数:

    创建函数时,可以设置参数也可以不设置参数。对于设置参数的函数,当调用函数时需要向函数传递参数,被传入的参数称为实参数,而函数定义时的参数为形参

    必须参数

    即当定义函数时使用参数了,调用该函数时必须输入参数,并且调用的数量和顺序必须和定义函数时的参数保持一致。

    def add(a,b):

                   Print(“a+b”,a+b)

    add(1,2)

    >>a+b=3

    如果少传一个参数或多传几个参数 程序会报错  无法运行

    关键字参数:

    使用关键字参数可以不按函数定义时的参数的顺序来调用函数,Python解释器能够根据函数定义的参数名来匹配参数。

    def hello(name,age):

                   print(“姓名:”,name)

                   print(“年龄:”,age)

    hello(name=”零一”,age=18)#按顺序传递

    hello(age=3,name”小明”)#不按顺序传递参数

    >>姓名:零一

    >>年龄:18

    >>姓名:小明

    >>年龄:3

    但不能传入没有定义的参数

    def person_name(name)

                   Print(“姓名”,name)

    person_name(name=”零一”,age=18)#错误

    因age未被定义  导致调用函数错误

    综上:关键字参数的顺序对结果没有影响,无论是否按照顺序调用都可以得到正常的结果。

    默认参数:

    定义函数可以给函数添加默认值,如果调用函数时没有传入函数,函数会使用默认值,并不会报错

    def default_value(name,age=18)

                   print(“我的名字是:”,name)

                   print(“我今年:”,age,”岁”)

    default_value(“零一”)

    >>我的名字是:零一

    >>我今年:18岁

    但是要注意默认参数必须定义在最后,否者会报错

    def default_value(age=18,name):

                   print(“我的名字是:”,name)

                   print(“我今年:”,age,”岁”)

    default_value(name=”零一”)#错误

    即:非默认参数不能跟在默认参数后面

    可变参数:

    在某些情况下我们不能在定义函数之前不能确定参数的数量和内容,这时候就可以用可变参数。

    some_func(*args,**kwargs)

    some_func 为函数名

    *args和**kwargs为可变参数

    def foo(*args):

                   print(args)

    foo()

    foo(1,2)

    foo(“ad”,”12”,”sd”)

    >>()

    >>(1,2)

    >>(‘ad’,’12’,’sd’)

    “*args”获得的是一个元组

    def foo(**kwargs):

                   print(kwargs)

    foo()

    foo(1,2)

    >>{}

    >>{1,2}

    “**kwargs”获得的是一个字典

  • 相关阅读:
    读书笔记之:C语言核心技术
    读书笔记之:C++Primer 第4版(ch111)
    读书笔记之:C与指针
    读书笔记之:C专家编程
    读书笔记之:C/C++代码精髓
    浮点数在内存中的表示
    读书笔记之:C++Primer 第4版(ch1214)
    C/C++语言中const的用法
    比NotePad++更好的文本代码(C#)编辑器Sublime Text
    ExtJs十四(ExtJs Mvc图片管理之四)
  • 原文地址:https://www.cnblogs.com/zl-mengxiang/p/13865477.html
Copyright © 2011-2022 走看看