博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础--函数的定义和调用
阅读量:5204 次
发布时间:2019-06-13

本文共 2078 字,大约阅读时间需要 6 分钟。

一、函数的作用:

提高代码的可读性,减少代码的冗余,方便调用和修改,组织结构清晰

二、函数的定义:函数遵循先定义后调用的原则

1、无参函数

def funcname():   #def 是关键字,后跟函数名():        子代码    #函数要执行的代码          return    #return返回值,没有时默认为none

2、有参函数

def funcname(参数1,参数2):  #参数个数可以为一个和多个    函数体    return

三、函数参数分类

def func(x,y):    res=x+y    return  resf=func(1,2)print(f)

形式参数:定义函数时的参数,本质就是变量名,上例中的x,y就是形式参数

实际参数:执行函数时的参数,本质就是变量的值,实参必须有一个明确的值,上例中的1,2就是实际参数

一)、实际参数:

1、按照位置传递给相应的参数
def func(x,y):    res=x+y    return  resf=func(1,2)print(f)
2、按照关键字传值,将不再受位置的限制
def func(x,y):    res = x+y    return resfunc(y=2,x=1)
3、按位置传值和按照关键字传值混用    1)按位置传值必须在关键字传值的前面    2)对于一个形参只能赋值一次

二)、形式参数:

1、位置参数:必须传值的参数2、默认参数:定义时赋值的参数就是默认参数,默认参数必须放在位置参数的后面,有默认参数时,可以不传递参数3、*args:动态参数,一个*时可以随意传递位置参数,打印结果是把参数作为一个元组输出
def f1(*a):    print(a, type(a))f1(123, 456, 789, [1, 2, 43])打印结果(123, 456, 789, [1, 2, 43]) 
4、动态参数**,传参时必须key,value的形式传递,最后会生成一个字典的形式
def f2(**a):    print(a, type(a))f2(k1=123, k2=456)打印结果为{'k1': 123, 'k2': 456} 
5、可以同时接受单个参数和key/value参数
def f3(*a, **aa):   #会把所有的位置参数作为一个元组,key/value参数作为一个字典    print(a, type(a))    print(aa, type(aa))f3(11, 22, 33, k1=123, k2=456)打印结果为(11, 22, 33) 
{'k2': 456, 'k1': 123}
6、把列表,元组,字典传入函数
def f4(*args):    print(args, type(args))li = [11, 22, 33, 44]f4(li, 123)  # 直接列表的名字,会把列表当做一整个元素当做函数生成后的元组的一个元素f4(*li)  # 使用*列表,会把列表内的每个元素当做函数生成后的元组的每个元素,类似于循环生成元组,元组列表类似打印结果为([11, 22, 33, 44], 123) 
(11, 22, 33, 44)
7、把字典传入函数
def f5(**kwargs):    print(kwargs, type(kwargs))dic = {"k1": 123}f5(**dic)  # 将字典传入到函数,需要使用双星号(**)打印结果为{'k1': 123} 
8、混合使用
def f6(x, *args, **kwargs):    print(x)    print(args)    print(kwargs)f6(1, 2, 3, 4, 5, k="a", v="z")打印结果为1(2, 3, 4, 5){'v': 'z', 'k': 'a'}

总结:形式参数的传入顺序: 位置参数-----*args-----**kwargs----默认参数

四、函数的调用和返回值

函数的返回值是return,函数不加return时默认的返回值是None,return可以返回任意值,也可以多个值,return后不跟参数默认返回的是None
def func(x,y):    print(x,y)    res=x+y    return resf=func(1,2)    #函数遵循先定义后调用原则,函数的调用就是func(1,2) 函数名加(),函数的执行结果,需要在调用时赋值给变量,然后printprint(f)执行结果为1 2  #函数执行时内部代码的执行结果3   #3即为函数的执行结果,函数的执行结果是返回给函数本身的

转载于:https://www.cnblogs.com/baomanji/p/6700326.html

你可能感兴趣的文章
[SHOI2008]cactus仙人掌图[圆方树+树dp]
查看>>
Javascript Number类型常见迷惑点
查看>>
Linux 下tomcat 的重新启动
查看>>
利用node js 来创建一个服务器
查看>>
objectiveC【语法】修饰符 static extern const
查看>>
史上最全的maven pom.xml文件教程详解
查看>>
ubuntu装软件包
查看>>
Mysql出现(10061)错误提示的暴力解决办法
查看>>
jdbc action 接口示例
查看>>
2018-2019-2 网络对抗技术 20165202 Exp3 免杀原理与实践
查看>>
NPM慢怎么办 - nrm切换资源镜像
查看>>
CoreData 从入门到精通(四)并发操作
查看>>
Swift - UIView的常用属性和常用方法总结
查看>>
Swift - 给表格TableView添加页眉和页脚
查看>>
Swift - 异步加载各网站的favicon图标,并在单元格中显示
查看>>
Java编程思想总结笔记Chapter 5
查看>>
51 nod 最大距离
查看>>
[LeetCode]662. Maximum Width of Binary Tree判断树的宽度
查看>>
WinForm聊天室
查看>>
ASCII码表含义
查看>>