IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python学习笔记(新手入门)(4)自定义函数 -> 正文阅读

[Python知识库]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 函数分类

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

    • 有参数无返回值

    • 有参数有返回值

    • 无参数有返回值

    • 无参数无返回值

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:12:29  更:2021-12-06 15:12:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:22:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码