百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

Python的函数详解_python函数总结

yund56 2025-03-01 13:28 24 浏览

Python函数总结(一)


一、定义函数

定义函数

函数的定义和调用

1、定义语法

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

语句

注意:

1、小括号必须

2、小括号之后要有冒号

3、缩进

2、调用语法

函数名(值1,值2...)

变量名 = 函数名(值1,值2...)

如果名字重名了,后者覆盖前者

示例-1:

def f1():

print('hello you')

def f2():

print('hello me')

#调用函数f1、f2

f1()

f2()

二、函数的文档说明

'''

函数的文档说明

'''

def fly(h):

'''

飞行器飞行的功能

:param h: 高度

:return: True表示成功 False表示失败

'''

print('飞行的高度为:'+ str(h) + "米")

return True

#调用函数

fly(10000)

结果:

飞行的高度为:10000米

三、函数的4种类型

1、无参数无返回值

2、无参数有返回值

3、有参数无返回值

4、有参数有返回值

说明:

1、return 写在函数的运行最后一行,返回值的同时,结束这个函数

2、没有返回值的函数,其实就相当于return None

示例-1:无参数无返回值

def f1():

print('f1为无返回值函数')

f1()

#如果将无返回值函数赋值给变量v,将返回None对象

v = f1()

print(v)

结果:

f1为无返回值函数

f1为无返回值函数

None

示例-2:无参数有返回值

def f2():

sum = 0

i = 0

while(i <= 100):

sum+=i

i = i + 1

return sum

#调用函数

result = f2()

print(result)

结果:5050

示例-3:有参数无返回值

#比较3个数的最大值

def f3(a,b,c):

temp = a ;

if(b > temp ):

temp = b

if(c > temp ):

temp = c

print("3个数最大值为:"+str(temp))

#调用函数

f3(6,8,9)

结果:3个数最大值为:9

示例-4:有参数有返回值

#比较3个数的最大值

def f3(a,b,c):

temp = a ;

if(b > temp ):

temp = b

if(c > temp ):

temp = c

return temp

#调用函数

max = f3(6,8,9)

print("3个数最大值为:"+str(max))

结果:3个数最大值为:9


Python 函数总结(二)

一、函数的参数

函数的参数包括可变和不可变类型。其中可变类型的有:列表、字典、set;

不可变类型的有:整数、浮点数、布尔、空、函数、元组、字符串

示例-1:

list = [1,2,3]

print("list被调用之前:" + str(list))

def f1 (x,list):

list.append(x)

print("list被调用之后:" + str(list))

x = 100

f1 (x,list)

结果:

list被调用之前:[1, 2, 3]

list被调用之后:[1, 2, 3, 100]

二、参数的类型

1、必选参数

按顺序、数量依次赋值。必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

示例:

调用f1()函数,你必须传入一个参数,不然会出现语法错误:

def f1(str):

print(str)

# 调用f1函数

f1("hello you,hello me");

2、默认参数

默认已经赋值了,如果调用的时候没有赋值,就使用默认值,如果赋值了,就使用赋值的。

默认参数必须在必选参数之前的位置。

示例-1:

def f2(x1 = 1 , x2 = 2 ):

print("x1 = " + str(x1) + ", x2 = " + str(x2))

#不使用默认参数x1 , x2

f2(10,20)

#使用默认参数x2

f2(100)

#使用默认参数x1 , x2

f2()

结果:

x1 = 10, x2 = 20

x1 = 100, x2 = 2

x1 = 1, x2 = 2

示例-2:

#报错!默认参数必须在必选参数之前的位置

def f2(x1 = 1 , x2):

print("x1 = " + str(x1) + ", x2 = " + str(x2))

3、不定长参数

你可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数。

不定长参数一个"*"是个元组的数据类型,二个"*"是个字典的数据类型

字典对象实际上就是java里面的Map对象

示例-1:参数是元组数据类型举例

def f( *x ):

#查看参数是什么数据类型(是元组类型)

print(type(x))

print(x)

#参数长度不定

f()

f(1)

f(1,2)

f(1,2,3)

结果:

()

(1,)

(1, 2)

(1, 2, 3)

示例-2:参数是元组数据类型举例

def f( *x ):

#既然是元组类型,那么可以使用for输出

for s in x:

print(s)

#参数长度不定

f("aaa","bbb","ccc")

结果:

aaa

bbb

ccc

示例-3:参数是字典对象的数据类型举例

def f ( **key_value ):

#查看带二个"*"参数的是什么数据类型(是字典类型)

print( type(key_value) )

#输出字典对象

print(key_value)

#字典对象没有值

f ()

#字典对象 k1 = "s001" , v1 = "lily"

f (k1 = "s001" , v1 = "lily")

#字典对象 k1 = "s001" , v1 = "lily",k2 = "s002" , v2 = "ada"

f (k1 = "s001" , v1 = "lily",k2 = "s002" , v2 = "ada")

结果:

{}

{'k1': 's001', 'v1': 'lily'}

{'k1': 's001', 'v1': 'lily', 'k2': 's002', 'v2': 'ada'}

示例-4:自定义个字典对象d1

def f ( **key_value ):

#输出字典对象

print(key_value)

#自定义个字典对象d1

d1 = {

"k1":"s001",

"k2":"s002",

"k3":"s003"

}

#调用字典对象,注意调用的格式:**字典对象

f ( **d1 )

结果:{'k1': 's001', 'k2': 's002', 'k3': 's003'}

示例-5:

#混合使用元组类型和字典类型

def f( *tuple, **kv):

print(tuple)

print(kv)

#前3个被认为是元组的元素,后2个被认为是字典元素

#注意:s001="lily" , s002="赵丽燕"中的s001、s002不能加引号,没有为什么,规定的

f ("aaa","bbb","ccc",s001="lily" , s002="赵丽燕")

结果:

('aaa', 'bbb', 'ccc')

{'s001': 'lily', 's002': '赵丽燕'}

示例-6:

#混合所有类型

def f(x1,x2,x3, *tuple, **kv):

print("x1,x2,x3为:" + str(x1)+"," + str(x2) + "," + str(x3))

print(tuple)

print(kv)

#前3个赋值给x1,x2,x3

#接着3个被认为是元组的元素,后2个被认为是字典元素

#注意:s001="lily" , s002="赵丽燕"中的s001、s002不能加引号,没有为什么,规定的

f (1,2,3,"aaa","bbb","ccc",s001="lily" , s002="赵丽燕")

结果:

x1,x2,x3为:1,2,3

('aaa', 'bbb', 'ccc')

{'s001': 'lily', 's002': '赵丽燕'}


Python函数总结(三)

一、局部变量和全局变量

局部变量:在函数内部定义的变量,用域仅局限于函数内部

全局变量:在函数外部定义,可以在程序的任何位置访问的变量,并且可以多次访问;

在函数内部不能直接修改全局变量,如果要修改,使用global声明

示例-1:

#全局变量

x = 100

#参数x1是局部变量

def f( x1 ) :

#局部变量

x2 = 20

print(x)

示例-2:

#如果想在函数体外使用函数体内定义的变量,须使用global关键字

def f( ) :

#全局变量

global x

x = 100

print(x)

f()

x = x + 1

print(x)

结果:

100

101

示例-3:

当全局变量和局部变量重名时候,在函数内优先使用局部变量

x = 10

def f( ) :

x = 100

print(x)

f()

结果:100

示例-4:

x = 10

def f( ) :

#全局变量

global x

x = 100

print(x)

f()

#global定义的x在函数内部将x值修改:x=100

x = x + 1

print(x)

结果:

100

101

二、递归函数

如果在函数内部调用自己本身,那么这个函数是递归函数。

递归效率有所降低,能用循环实现的,尽量还是用循环实现

示例:斐波那契数列

斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、

def feb(n):

if n == 1:

return 1

if n == 2:

return 1

else:

y = feb(n - 2) + feb(n - 1)

return y

y = feb(10)

print(y)

三、匿名函数

python 使用 lambda 来创建匿名函数。语法:

lambda [arg1 [,arg2,.....argn]]:expression

":"左侧是参数,右侧是返回值

示例-1:

f = lambda x : x + 1

y = f(10)

print(y)

结果:11

上面的函数类似于:

def f():

return x + 1

示例-2:map函数运算

list1 = [1,2,3]

#使用map函数映射列表list1的值到一个匿名函数中,

#匿名函数的作用是计算每个变量的平方

m = map(lambda x : x**2 , list1)

#将map对象m转换为list对象

list2 = list(m)

print(list2)

结果:[1 4 9]

示例-3:

list1 = [1,2,3]

list2 = [4,5,6]

#计算两个列表的和

m = map(lambda x ,y : x + y , list1,list2)

#将map对象m转换为list对象

list = list(m)

print(list)

结果:[5, 7, 9]

四、高阶函数

所谓高阶函数是指那些作用于函数或者返回其它函数的函数,也就是说高阶函数可以得到一个新的函数。python的functools提供

高阶函数

1、partial

为某个函数,赋值一些参数,返回一个新的函数,已经拥有了一些默认值的参数

2、reduce

函数必须有两个参数,作用域集合或者集合加初始值,先取两个值赋值给参数,然后将

函数的返回值再赋值给第一个参数,集合的第二个值给第二个参数

示例-1:

import functools

print(int('1111',8))

print(int('1111',2))

print(int('101001',2))

int2 = functools.partial(int,base=2)

print(int2('110'))

print(int2('111'))

print(int2('111',base=8))

示例-2:

ls = [1,2,3,4,5]

#计算列表所有元素之和

ret = functools.reduce(lambda x,y:x+y,ls)

print(ret)


《大数据和人工智能交流》的宗旨

1、将大数据和人工智能的专业数学:概率数理统计、线性代数、决策论、优化论、博弈论等数学模型变得通俗易懂。

2、将大数据和人工智能的专业涉及到的数据结构和算法:分类、聚类 、回归算法、概率等算法变得通俗易懂。

3、最新的高科技动态:数据采集方面的智能传感器技术;医疗大数据智能决策分析;物联网智慧城市等等。

根据初学者需要会有C语言、Java语言、Python语言、Scala函数式等目前主流计算机语言。

根据读者的需要有和人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科通俗易懂的文章。


相关推荐

SM小分队Girls on Top,女神战队少了f(x)?

这次由SM娱乐公司在冬季即将开演的smtown里,将公司的所有女团成员集结成了一个小分队project。第一位这是全面ACE的大姐成员权宝儿(BoA),出道二十年,在日本单人销量过千万,韩国国内200...

韩国女团 aespa 首场 VR 演唱会或暗示 Quest 3 将于 10 月推出

AmazeVR宣布将在十月份举办一场现场VR音乐会,观众将佩戴MetaQuest3进行体验。韩国女团aespa于2020年11月出道,此后在日本推出了三张金唱片,在韩国推出了...

韩网热议!女团aespa成员Giselle在长腿爱豆中真的是legend

身高163的Giselle,长腿傲人,身材比例绝了...

假唱而被骂爆的女团:IVE、NewJeans、aespa上榜

在韩国,其实K-pop偶像并不被认为是真正的歌手,因为偶像们必须兼备舞蹈能力、也经常透过对嘴来完成舞台。由于科技的日渐发达,也有许多网友会利用消音软体来验证K-pop偶像到底有没有开麦唱歌,导致假唱这...

新女团Aespa登时尚大片 四个少女四种style

来源:环球网

韩国女团aespa新歌MV曝光 画面梦幻造型超美

12月20日,韩国女团aespa翻唱曲《DreamsComeTrue》MV公开,视频中,她们的造型超美!WINTER背后长出一双梦幻般的翅膀。柳智敏笑容甜美。宁艺卓皮肤白皙。GISELLE五官精致...

女网友向拳头维权,自称是萨勒芬妮的原型?某韩国女团抄袭KDA

女英雄萨勒芬妮(Seraphine)是拳头在2020年推出的第五位新英雄,在还没有正式上线时就备受lsp玩家的关注,因为她实在是太可爱了。和其他新英雄不同的是,萨勒芬妮在没上线时就被拳头当成虚拟偶像来...

人气TOP女团是?INS粉丝数见分晓;TWICE成员为何在演唱会落泪?

现在的人气TOP女团是?INS粉丝数见分晓!现在爱豆和粉丝之间的交流方法变得多种多样,但是Instagram依然是主要的交流手段。很多粉丝根据粉丝数评价偶像的人气,拥有数百、数千万粉丝的组合作为全球偶...

韩国女团MVaespa Drama MV_韩国女团穿超短裙子跳舞

WelcometoDrama.Pleasefollow4ruleswhilewatchingtheDrama.·1)Lookbackimmediatelywhenyoufe...

aespa师妹团今年将出道! SM职员亲口曝「新女团风格、人数」

记者刘宛欣/综合报导南韩造星工厂SM娱乐曾打造出东方神起、SUPERJUNIOR、少女时代、SHINee、EXO等传奇团体,近年推出的aespa、RIIZE更是双双成为新生代一线团体,深受大众与粉丝...

南韩最活跃的女团aespa,新专辑《Girls》即将发布,盘点昔日经典

女团aespa歌曲盘点,新专辑《Girls》即将发布,期待大火。明天也就是2022年的7月8号,aespa新专辑《Girls》即将发行。这是继首张专辑《Savage》之后,时隔19个月的第二张专辑,这...

章泽天女团aespa出席戛纳晚宴 宋康昊携新片亮相

搜狐娱乐讯(山今/文玄反影/图科明/视频)法国时间5月23日晚,女团aespa、宋康昊、章泽天等明星亮相戛纳晚宴。章泽天身姿优越。章泽天肩颈线优越。章泽天双臂纤细。章泽天仪态端正。女团aespa亮...

Aespa舞台暴露身高比例,宁艺卓脸大,柳智敏有“TOP”相

作为SM公司最新女团aespa,初舞台《BlackMamba》公开,在初舞台里,看得出来SM公司是下了大功夫的,虽然之前SM公司新出的女团都有很长的先导片,但是aespa显然是有“特殊待遇”。运用了...

AESPA女团成员柳智敏karina大美女

真队内速度最快最火达成队内首个且唯一两百万点赞五代男女团中输断层第一(图转自微博)...

对来学校演出的女团成员语言性骚扰?韩国这所男高的学生恶心透了

哕了……本月4日,景福男子高中相关人士称已经找到了在SNS中上传对aespa成员进行性骚扰文章的学生,并开始着手调查。2日,SM娱乐创始人李秀满的母校——景福高中迎来了建校101周年庆典活动。当天,S...