Python学习笔记(新手入门)(4)自定义函数

目录

三、Python函数基础

3.1 函数基础

3.2 函数参数

3.3 函数返回值

3.4 函数嵌套调用

3.5 函数分类


三、Python函数基础

3.1 函数基础

3.1.1 函数概念

概念:在编写程序中,有某一功能代码出现多次,但是为了提高编写效率以为代码的重用,所以把具有独立功能的代码组织为一个小模块,这就是函数。

3.1.1.1 什么是函数

  • 一系列Python语句的组合,可以在程序中运行一次或者多次,一般是完成具体独立的功能。

3.1.1.2 为什么使用函数

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

3.1.2 函数定义

 # def + 关键字 + 小括号 + 冒号 + 换行缩进 + 代码块 定义一个函数
 def 函数名(参数列表):
     代码块

3.1.3 函数调用

函数名加()即可调用该函数

  • 本质上就是执行函数定义里的代码块

  • 在调用函数前,必须线定义函数

3.1.4 函数说明文档

函数内容第一行可以用字符串进行函数说明

  • 定义函数写文档可以””“ “”“书写文档说明

  • 调用时有函数说明

 
#函数定义
 def xinxi(name,height,weight,hobby,pro):
 ​
     """
     :param name:
     :param height:
     :param weight:
     :param hobby:
     :param pro:
     :return:
     """
     #代码块
 ​
     print("%s的身高是%f" % (name,height))
     print("%s的体重是%f" % (name,weight))
     print("%s的爱好是%s" % (name,hobby))
     print("%s的专业是%s" % (name,pro))
     pass
 #调用带参数信息
 xinxi("Rany",185,155,"打篮球","计算机")
 print("------------分割线--------------")
 xinxi("peter",180,150,"健身","计算机")
 ​

3.2 函数参数

定义参数时,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,一级函数将返回什么样的值就够了。

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

3.2.1 函数的作用

Python的函数定义非常简单,但灵活度非常大,除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。

3.2.2 参数的类型

3.2.2.1 缺省参数【默认参数】

  • 缺省参数,在调用函数时如果没有传参数,那么会使用函数时给的缺省值。缺省参数必须在参数列表的最后面,否则会报错。

 #定义函数
 def sum1(a=20,b=30):
     #定义函数
     print("默认参数使用=%d"%(a+b))
     pass
 #默认参数调用
 sum1() #在调用时如果未赋值,就会用定义函数时给定的默认值

3.2.2.2 不定长参数【可选参数】

一个函数有时候会处理比当初声明的参数要多,这就是不定长参数,定义函数时不用生命参数名。加了幸好(*)的变量args会存放所有未命名的变量参数,args为元组;而加**的变量kwargs会存放命名参数,即形如key=value的参数,kwargs为字典。例3.2.2.4关键字参数

 #可选参数(当参数的个数不确定时使用,比较灵活)
 
def getComputer(*args): #可变长的参数
     """
     计算累加和
     :param args:    可变长的参数类型
     :return:
     """
     result = 0
     for item in args:
         result+=item
         pass
     print("result=%d"%result)
     pass
 getComputer(1,2,4,5,6)
 getComputer(1,2)

3.2.2.3 必选参数

 #必选参数
 def sum(a,b):# a,b是形式参数,形参只是意义上的一种参数,在定义的时候是不占用内存地址的。
     sum = a + b
     print(sum)
     pass
 #函数调用   在调用的时候,必须要填的信息,就是必选参数
 sum(20,15) #20,15就是实际参数,有实际意义的参数。就是占用内存地址的参数。

3.2.2.4 关键字参数

  • **来定义

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

 #关键字参数
 def keyFunc(**kwargs):
     print(kwargs)
     pass
 dic = {"name":"Rany","age":19}
 keyFunc(**dic) #直接传递字典对象时,需要带上**才能运行
 keyFunc(name="jily",age=19) #直接传递键值对

3.2.2.5 引用传参

Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。

3.2.2.6 混合参数

 
def fundtions(*args,**kwargs):
     """
     可选参数必须放到关键字可选参数之前
     :param args: 
     :param kwargs: 
     :return: 
     """
     print(args)
     print(kwargs)
     pass
 fundtions(123,456,789,name="rany",age=19) #python自动分配

3.3 函数返回值

  • 返回值就是程序完成后,最后返回的对象

  • 关键字return。有return返回对应的值;如果没有,返回空None

  • 返回类型可以是任意类型,取决于return后面的类型

  • 用途是给调用方返回的数据

  • 在一个函数体内可以出现多个return关键字,但只返回一个return

  • 如果在一个函数体内执行了return,就意味着函数运行结束

def sun(a,b):
     sun = a + b
     return rany
 sun(10,9)
 print(rany)

3.4 函数嵌套调用

 def ones():
     print("-----------------分割线1-----------------")
     print("-----------------分割线2-----------------")
     print("-----------------分割线3-----------------")
     pass
 def twos():
     print("-----------------分割线4-----------------")
     ones()
     print("-----------------分割线5-----------------")
     print("-----------------分割线6-----------------")
 ​
 twos()

3.5 函数分类

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

    • 有参数无返回值

    • 有参数有返回值

    • 无参数有返回值

    • 无参数无返回值

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

英语渣i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值