初遇函数

简介: 简介:学习python的学习笔记 2,在B站《求知讲堂》学习。

一、简单的理解


什么是函数:一系列Python语句的组合,可以在程序中运行一次或者多次,

一般是完成具体的独立的功能


为什么要使用函数:

代码的复用最大化以及最小化冗余代码,整体代码结构清晰,问题局部化。


二、函数定义


1、def 函数名( )


代码块

#这样就完成了函数的定义

例子:

def information():

print(‘小张的身高是%f’ % 1.73)

print(‘小张的体重是%f’ % 160)

print(‘小张的爱好是%s’ % ‘唱歌’)

print(‘小张的身高是%s’ % ‘计算机信息管理’)

pass

#以上为定义函数,运行不出来的,需要你对函数进行调用


#进行函数调用

information()


$5YJ6FP2{N{@2{N$C~FKGUR.png


#需要多次调用的时候,我们只需要多次使用函数就可以啦

#有时候需要对函数进行一定的注解,帮助我们日后方便理解函数,这时候就需要’’'注解。


2、


上面那个函数只能用于多次打印小张的信息,为了能够打印多个人的信息,需要引入函数参数的概念

例:

def printInfo(name,height,weight,hobby,pro): #括号里面是形式参数

# 函数代码块

print(’%s的身高是%f’ %(name,height))

print(’%s的体重是%f’ %(name,weight))

print(’%s的爱好是%s’ %(name,hobby))

print(’%s的专业是%s’ %(name,pro))

pass

#定义函数完毕,下面是调用

printInfo(‘小李’,189,200,‘打游戏’,‘咨询师’) #这个括号里面是实参


6CC_JNFQ8WO5K@2C9B_QCPK.png


#同时打印多个人的信息也是可以的,只需要再次调用这个函数,把函数括号里面的实参改变一下就可以了。

这样来看,就可以完善1中的函数定义了。


def 函数名(参数列表 )

代码块

#这样就完成了函数的定义


3、参数


参数:其实就是函数为了实现某项特定的功能,进而为了得到实现功能所需要的数据,就是为了得到外部数据的。

参数的分类:必选参数、默认参数[缺省参数]、可选参数、关键字参数

(1)必选函数

#在调用的时候必选参数 是必须要赋值的

def sum(a,b): #形式参数:只是意义上的一种参数,在定义的时候是不占内存地址的

sum=a+b

print(sum)

pass

sum(20,15) #20 和 15 是实际参数:实参,实实在在的参数,是实际占用内存地址的

(2)默认参数【缺省参数】

def sum1(a,b=40,c=90):

print(‘默认参数使用=%d’%(a+b))

pass

#默认参数调用

sum1(10) #在调用的时候如果未赋值,就会用定义函数时给定的默认值

sum1(2,56)#在调用的时候如果赋值了,则按照赋的值进行程序运行


MA76C{}V$@(5WI}TLNIFP)2.png


(3)可变参数

#当参数的个数不确定时使用,比较灵活

用*来定义


一般用*args表示


def getComputer(*args): #可变长的参数

‘’’

计算累加和

:param args: 可变长的参数类型

:return:

‘’’

result=0

for item in args:

result+=item

pass

print(‘result=%d’%result)

pass

#for循环属于定义函数那部分的程序

#以上是定义getComputer这个函数

getComputer(1)

getComputer(1,2)

getComputer(1,2,3)

getComputer(1,2,3,4,5,6,7,8)


]LFF5[{7KY)}3FG4HYSIAAK.png


(4)关键字可变函数

#需要用**来定义

#在函数体内 参数关键字是一个字典类型 key是一个字符串


def keyFunc(**kwargs):

print(kwargs)#函数的作用就是打印kwargs

pass

#函数调用

dictA={“name”:‘Leo’,“age”:35}

keyFunc(**dictA) #想成功地打印出来,需要在dictA前加上

#keyFunc(name=‘peter’,age=26,),这也是一种方法,直接在括号里声明


GAVQX%7K]{3%5Y0{5))C3BJ.png


(5)组合函数

必选>默认(省缺)>可选>关键字

def complexFunc(*args,**kwargs):

print(args) # 可选参数:接受的数据是一个元组类型

print(kwargs) #关键字可选参数:接受的数据是一个字典类型

pass

complexFunc(1,2,3,4,name=‘刘德华’)

print(’---------------分割线-----------------’)

complexFunc(age=36)


)T2%7}TL1Y@XCXA0`Q[~BD0.png


注意:可选参数必须放在关键字可选参数前面,否则会报错


4、函数的返回值


概念:函数执行完以后会返回一个对象,如果在函数的内部有return这个关键字, 就可以返回实际的值,否则返回None


类型:可以返回任意类型,返回值类型应该取决于return后面的类型


用途:给调用方返回数据


在一个函数体内可以出现多个return值:但是肯定只能返回一个return


注意:如果在一个函数体内 执行了return,意味着函数就执行完成退出了,return后面的代码语句将不会执行


def Sum(a,b):

sum=a+b

return sum#将计算的结果返回

pass

rs=Sum(10,30) #将返回值赋给其他的变量

print(rs) #函数的返回值返回到调用的地方


#也可以直接print(sum(10,30))

QJZY26JRI7PRQ9FN9ERX376.png


(1)、

def calComputer(num):

result=0

i=1

while i<=num:

result+=i

i+=1

pass

return result

pass

#开始调用函数

value=calComputer(10)

print(value)

print(type(value))

JRL`TCO~UO[1(LT7$}(@{FY.png


(2)、

def calComputer(num):

li=[ ]

result=0

i=1

while i<=num:

result+=i

i+=1

pass

li.append(result)

return li

pass

#调用函数

value=calComputer(10)

print(type(value)) #value 类型

print(value)

ZICJ35S[YIG7MR)})(OFJM4.png

注意:由以上两个例子可以看出,return可以返回任意类型,返回值类型应该取决于return后面的类型


5、函数的嵌套


就是在一个函数里面,调用之前定义过的函数。


函数的分类:根据函数的返回值和函数的参数 可分为


有参数无返回值的

有参数有返回值的


相关文章
|
开发框架 小程序 前端开发
带你了解小程序的框架之谜
带你了解小程序的框架之谜
|
Java 程序员
重温经典《Thinking in java》第四版之第五章 初始化与清理(三十二)
重温经典《Thinking in java》第四版之第五章 初始化与清理(三十二)
43 0
|
7月前
|
Java
【编程炼金术】Java 线程:从一粒沙到一个世界,生命周期的奇妙转化!
【6月更文挑战第19天】Java线程生命周期始于`Thread`类或`Runnable`接口,经历创建、新生、就绪、运行、阻塞到死亡五态。调用`start()`使线程进入就绪,随后可能获得CPU执行权变为运行态。当阻塞后,线程返回就绪,等待再次执行。理解并管理线程生命周期是优化多线程程序的关键。
40 1
|
6月前
|
设计模式 开发者 Python
惊呆了!Python元类竟能如此玩转,你的编程世界将不再有界限
【7月更文挑战第6天】Python元类是类的类,用于控制类的创建。它们让开发者能自定义类的行为,如添加方法、改变继承或实例化过程。例如,定义一个元类`my_metaclass`,它会在创建类时自动添加新方法。元类广泛应用在单例、插件系统和ORM等高级场景,拓展了Python代码的灵活性和威力。掌握元类,揭开编程魔法的面纱,为代码解锁更多可能。
30 0
|
Java C语言
重温经典《Thinking in java》第四版之第四章 控制执行流程(二十四)
重温经典《Thinking in java》第四版之第四章 控制执行流程(二十四)
61 1
|
8月前
|
搜索推荐 Java
重温经典《Thinking in java》第四版之第七章 复用类(四十)
重温经典《Thinking in java》第四版之第七章 复用类(四十)
56 1
|
8月前
|
Java
重温经典《Thinking in java》第四版之第七章 复用类(三十九)
重温经典《Thinking in java》第四版之第七章 复用类(三十九)
36 1
|
8月前
|
Java 编译器 C++
重温经典《Thinking in java》第四版之第九章 接口(四十六)
重温经典《Thinking in java》第四版之第九章 接口(四十六)
48 0
|
Java C语言
重温经典《Thinking in java》第四版之第四章 控制执行流程(二十五)
重温经典《Thinking in java》第四版之第四章 控制执行流程(二十五)
59 1