1.什么是函数?

有两个变量 x 和 y ,当 x 取其变化范围中的每一个特定值时,相应地有唯一的 y 与它对应,则称 y 是 x 的函数。记为 y = f ( x ),其中 x 为自变量, y 为因变量。

可知函数由三部分组成:

x:输入,一般函数可以有多个输入。

f:function,通过某种特定的方法将x转换为y,function就是这个方法。

y:输出,一般函数只有一个输出,计算机技术中的函数也可以没有输出。

python的函数:由若干个语句块(function)、函数名称、参数列表(输入)构成,完成一个功能(输出)。

2.函数的定义及调用

1.函数的定义

python使用def语句定义函数

def 函数名(参数列表):

函数体(代码块)

[return 返回值]

函数名:一般命名要求。

参数列表:放一个标志符占位,叫做形参。

函数体:代码块,决定函数的参数。

return:默认都会使用return语句,若无默认返回None。

2.函数的调用

通过前面定义的函数名称进行调用,就可以将函数运行起来,从而得到函数的返回值。

注意:

调用的时候需要在函数名称后加个小括号()括号内填入函数体中需要的参数,传入的参数叫做实参。

函数传入的参数必须和函数体中需要的函数(实参)保持数量一致,除非原函数参数列表中定义的有默认参数。

#定义函数add()

def add(x,y):

sum = x+y

return sum

#调用函数add()

add(1,3)

4

3.函数的参数

python传入的参数分为两类,一种说根据位置传入的参数叫位置参数,另外一种可以根据形参定义的变量传入的参数叫关键字参数。

传入的时候,位置参数需放在关键字参数之前。

1.普通位置参数

把参数1给x,参数3给y。一一对应,这种就是位置参数。位置参数是按照顺序一一传入。

def add(x,y):

sum = x+y

return sum

add(1,3)

4

2.可变位置参数

在普通位置前面加个"*",可以一次接受多个参数。使用一个元组(tuple)收集多个实参。

def add(*nums):

sum = 0

print(type(nums))

for x in nums:

sum+=x

print(sum)

add(3,5,6)

14

说明:一般情况下,如果普通参数和可变位置参数一起定时候,需要把普通参数放在位置参数之前。

def add(x,*nums):

sum = 0

print(nums)

for x in nums:

sum+=x

print(sum)

add(3,5,6)

(5, 6)

11

3.关键字参数

把3传给y,1传给x。按照定义好的关键字传入参数,位置可以随意。

def add(x,y):

sum = x+y

return sum

add(y=3,x=1)

4

说明:当位置参数和关键字参数一起传入时候,需要把位置参数放在关键字参数前面。

def add(x,y):

sum = x+y

return sum

add(1,y=1)

2

4.可变关键字参数

在普通关键字参数前面加两个"**",可以一次接受多个关键字参数,收集到的实参名称和值组成一个字典(dict)。

def showconfig(**kwargs):

for k,v in kwargs.items():

print('{} = {}'.format(k, v))

showconfig(host='127.0.0.1',port='8080',username='mykernel',password='qwe123')

username = mykernel

password = qwe123

port = 8080

host = 127.0.0.1

说明:当可变参数和普通参数一起定义时,需要把可变参数放在普通参数之后。

def showconfig(x,y,*args,**kwargs):

print(x)

print(y)

print(args)

print(kwargs)

showconfig('127.0.0.1',8080,'mykernel',password='qwe123')

#此时使用关键字参数给x,y赋值就会报错。

127.0.0.1

8080

('mykernel',)

{'password': 'qwe123'}

5.默认参数

有些参数很少改变,所以可以在指定形参的时候传入一个默认值,当有新的实参去替换它的时候,新的参数生效。

默认参数必须放在普通参数之后

#传入默认值参数

def add(x=11,y=111):

sum = x+y

return sum

add() #未传入参数,默认参数生效

122

#有再次传入参数,替换默认值。

def add(x=11,y=111):

sum = x+y

return sum

add(657,y=123) #新传入的参数生效

780

定义一个函数login,参数名称为host、port、username和password。

def login(host='127.0.0.1',port='80',username='mykernel',password='123'):

print('{}:{}\nname:{}\npasswd:{}\n'.format(host,port,username,password))

login()

login('192.168.1.1',8080)

login('10.0.0.1',password='qwe123')

127.0.0.1:80

name:mykernel

passwd:123

192.168.1.1:8080

name:mykernel

passwd:123

10.0.0.1:80

name:mykernel

passwd:qwe123

6.keyword-only参数(python3后引入)

定义方法一:在可变位置参数后,出现普通参数。此时这个普通参数就被python视作为keyword-only参数,keyword-only参数在传入时必须使用关键字传参方法传入。

定义方法二:def fn(*, x,y),*,后跟普通参数,也被视为keyword-only参数,x,y均为keyword-only参数。

7.参数定义顺序

参数列表的一般顺序是:普通参数,缺省参数,可变位置参数,keyword-only参数(可带缺省值),可变关键字参数。

def fn1(x, y, z=3, *args, m=4, n, **kwargs):

print(x,y)

print(z)

print(args)

print(m,n)

print(kwargs)

print(end='\n')

#x,y是普通参数

#z,带默认值,传入时候省略,缺省参数

#*args,可变位置参数

#m=4,keyword-only 缺省参数

#n,keyword-only参数

#**kwargs,可变关键字参数

fn1(1,2,n=4)

fn1(1,2,4,43,123,k=123,m=11,n=13,j='hello')

1 2

3

()

4 4

{}

1 2

4

(43, 123)

11 13

{'j': 'hello', 'k': 123}

def fn2(x, y, z=3, *, m=4, n, **kwargs): #定义m,n为keyword-only参数。

print(x,y)

print(z)

print(m,n)

print(kwargs)

print(end='\n')

fn2(1,2,m=1,n=2)

1 2

3

1 2

{}

8.参数解构

def add(x,y):

print(x+y)

print()

add(*(4,6)) #参数解构

# add(*(1,2)) add(*[1,2]) add(*{1,3})

add(**{'x':1,'y':11}) #字典参数解构,x,y参数要和定义的对应起来。把x=1,y=11 传入形参,关键字传参。

d = {'a':1,'b':12}

add(*d.keys()) #取k 把取出来的k赋值给形参,位置传参。

add(*d.values()) #取values

10

12

ab

13

python函数由什么组成_python的函数相关推荐

  1. python回调函数实例详解_Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...

  2. python的函数的对象属性_Python帮助函数调试函数 用于获取对象的属性及属性值...

    Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详 ...

  3. dynamo python修改多个参数_python之函数

    a.sort()没有返回值.而sorted(a)是有返回值的. Python的标准比较运算符:<.<=. > .>=. ==. != 函数用法和底层分析:函数是一个可重用的程序 ...

  4. python语言输入两个数_python的函数输入两个参数吗

    本我我们要讨论的是关于函数的传参问题 对于函数:def fun(arg): print(arg) def main(): fun('hello,Hongten') if __name__== '__m ...

  5. python中map函数返回值类型_python map函数

    from:https://www.cnblogs.com/AlwaysWIN/p/6202320.html 描述 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序 ...

  6. python中函数的定义包括_python中函数的定义及调用

    python中函数的定义及使用方法 1.函数的概念:函数是将具有独立功能的代码块组织为一个整体,使其具有特殊功能的代码集; 2.函数的作用:使用函数可以加强代码的复用性,提高程序编写的效率; 3.函数 ...

  7. python函数运行没有结果_python之函数

    一,函数是什么? 定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 1.减少代码的重复性 2.代码的可扩展性 3.代码的易维护性 语法定义 ...

  8. python函数的递归小兔子_python中函数递归

    函数递归简单的来说就是函数自己调用自己,实现和循环类似的效果,通过return关键字来实现自己调用自己. 一个简单的循环例子,1~100的累加,这可能是很多人学习循环编写的第一个程序,用循环和递归分别 ...

  9. pythonindex函数的使用格式_Python之函数

    为什么要使用函数? 在说明原因之前,我们先来看一个需求,比如你的boss需要你写实现以下的打印输出,并插入在某段程序代码的20个位置都条件此打印输出: ******************** *** ...

最新文章

  1. 关于程序多开的尝试。CreateMutex,OpenMuxtex,ReleaseMutex
  2. 什么导致了交换机端口呈现err-disable状态?
  3. ANSYS——分析实例,平面对称问题
  4. Eclipse中的Github Gists
  5. JavaScript websocket 实例
  6. query的list()和iterate()区别 面试题
  7. Chromium OS 开源项目
  8. oracle dbms调度程序,Oracle 调度程序作业( dbms_scheduler )(zt)
  9. linux apache压缩包安装目录,源码包安装Apache服务
  10. Android Problem- android.content.res.Resources$NotFoundException: String resource ID #0xa
  11. xml.html一键解密工具,AutoJs一键解密
  12. 易灵思FPGA-报告总结篇
  13. Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少(蓝桥基础实战)
  14. 凸优化极简笔记(三):椭圆方程的矩阵形式
  15. 宜家app android,IKEA宜家家居下载
  16. 2021上半年程序员新书大盘点
  17. [机器学习] 深入理解 目标函数,损失函数和代价函数
  18. 英伟达黄仁勋发布全球最大GPU,超300斤,汽车后备箱大小
  19. agv ti 毫米波雷达_自动驾驶之——毫米波雷达概述
  20. 计算机专业看能力还是学校,浅谈中职学校计算机专业教学探究

热门文章

  1. SoC关键技术-HBM学习札记
  2. mysql管理利器sqlyogent初识(php建立数据库)_MySql管理利器SQLyogEnt初识(php建立数据库)...
  3. 论先后,知为先;论轻重,行为重
  4. Delphi 编写数字签名验证并获取签名信息
  5. 企业微信链接适配安卓ios移动端问题汇总
  6. Zabbix Trapper items
  7. 1083 Cantor表
  8. Ubuntu安装opencv的viz模块
  9. 设计模式-设计原则-开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段...
  10. 在Ubuntu中使用雷电3外接显卡(eGPU)进行深度学习