浔阳地僻无音乐,终岁不闻丝竹声——python函数
浔阳地僻无音乐,终岁不闻丝竹声。 住近湓江地低湿,黄芦苦竹绕宅生。 其间旦暮闻何物?杜鹃啼血猿哀鸣。
1 函数使用
1.1 函数的作用和特性
作用:
函数就是封装了一部代码,实现一定功能的语义代码块,声明后可以被调用执行
特性:
声明函数不会执行函数中的代码
调用函数才会执行函数中的代码
优势:函数提高了代码的复用性
1.2 函数的声明和调用、使用方式
函数的声明:
def 函数名称([参数]): # 名称遵循变量命名规则"""文档注释:函数的作用"""代码[return 返回结果] # []表示可选# def:固定语法,关键字,专门用来声明函数
# 函数名称,就是一个标识符,命名规则参考变量
# 参数:函数中的代码执行时需要的数据
# 函数中的代码:封装起来的需要重复利用执行的代码块
# return的作用:1)返回函数中代码的执行结果 2)结束函数,后面的代码不会再执行
# 函数声明前后空2行
为方便展示,本文函数省略文档注释,实际使用中请根据情况添加。
函数调用:
多次调用不同的过程相互独立,互相不影响
无参数无返回值:函数名称()
有参数无返回值:函数名称(传递给参数的数据)
无参数有返回值:变量 = 函数名称()
有参数有返回值:变量=函数名称(传递给参数的数据)
函数使用:
当程序中需要一个重复使用的功能,定义函数
当功能在执行时需要资源,定义参数
当执行的结果,在后续代码中需要,返回结果
2 函数的参数
2.1 按照参数的作用
形式参数(形参)
位置:声明函数时放在函数名称后面括号中的变量
作用:描述函数执行时形式上需要的数据
实际参数(实参)
位置:调用执行函数时放在函数名称后面括号中的数据
作用:实际传递给函数执行时的数据,可以参与真实运算
2.2 按照参数的操作方式
2.2.1 位置参数
调用函数时,实际参数按照前后顺序依次给形式参数赋值的过程
def test(a, b):print(a, b)a = "音乐"
b = "丝竹"
test(a, b) # 音乐 丝竹
2.2.2 关键字参数
以 形参=实参 的形式忽略形参的定义顺序进行的传参的传参方式
关键字参数必须位置参数后面
def test(a, b, c):print(a, b, c)# 关键字参数与位置无关,交换位置得到相同的效果
test("终岁", c="丝竹声", b="不闻") # # 终岁 丝竹声 不闻
2.2.3 默认值参数
如果调用有给默认参数传递数据,则使用实际传递数据
如果没有传递,则使用默认数据(声明时赋值给形式参数)
def test(a, b="终岁不闻丝竹声"):print(a, b)# 没有传递是使用默认值
test("浔阳地僻无音乐") # 浔阳地僻无音乐 终岁不闻丝竹声# 有传递则使用传递数据
test("浔阳地僻无音乐", "窗前明月光") # 浔阳地僻无音乐 窗前明月光
test("浔阳地僻无音乐", b="疑是地上霜") # 浔阳地僻无音乐 疑是地上霜
2.2.4 可变参数–元组参数
元组参数是符号 * 开头的参数
不确定函数执行时需要接受参数的类型和个数,可使用元组参数接收数据, 将变量包装成元组
未知参数要放在可变参数前
# args是习惯写法,可用其他字母代替
def test(*args):print(args)s = ("住近湓江地低湿", "黄芦苦竹绕宅生")
test("浔阳地僻无音乐", "终岁不闻丝竹声") # ('浔阳地僻无音乐', '终岁不闻丝竹声')
test(s[0]) # ('住近湓江地低湿',)
2.2.5 可变参数–字典参数
不确定函数执行过程中接受什么类型的参数个数,可使用字典参数(关键字参数)
给形参前面添加**使参数变成一个字典,所有传递的参数变成字典的键值对
# kwargs是习惯写法,可用其他字母代替
def test(**kwargs):print(kwargs) test(s1="浔阳地僻无音乐", s2="终岁不闻丝竹声") # {'s1': '浔阳地僻无音乐', 's2': '终岁不闻丝竹声'}
# *只作为标记,后面的是关键字参数,必须写成关键字
def test(a, *, b, c):print(a, b, c)test("黄芦", b="苦竹", c="绕宅生") # 黄芦 苦竹 绕宅生
2.2.6 强制关键字参数
某些特殊应用项目中,需要强制调用者使用关键字参数调用函数,提高代码可读性
# * 只作为标记,后面的是关键字参数,必须写成关键字
def test(a, *, b, c):print(a, b, c)test("黄芦", b="苦竹", c="绕宅生") # 黄芦 苦竹 绕宅生
2.2.6 万能参数
语义上的可以接受所有合法参数格式的数据,通常默认的表示方式(*args, **kwargs)
def test(*args, **kwargs):print(args)print(kwargs)test("其间旦暮", "闻何物", s1="杜鹃啼血", s2="猿哀鸣")
('其间旦暮', '闻何物')
# ('其间旦暮', '闻何物')
# {'s1': '杜鹃啼血', 's2': '猿哀鸣'}
2.3 参数定义顺序
位置参数>元组参数>默认参数>字典参数
先定义位置参数,再定义关键字参数,字典参数必须最后
3 函数的返回值
函数的返回值:即函数中的代码执行的结果
函数执行的结果,如果在后续的代码中需要使用,就需要在函数中定义返回值并且在调用的时候接收返回值
# 返回单个数据
def test():return "浔阳地僻无音乐,终岁不闻丝竹声"s1 = test() # 浔阳地僻无音乐,终岁不闻丝竹声
print(s1)# 返回一组数据
def test2():return ["住近湓江地低湿", "黄芦苦竹绕宅生"] # 可指定数据类型(元组,列表)s2 = test2()
print(s2) # ['住近湓江地低湿', '黄芦苦竹绕宅生']# 返回多个数据(元组)
def test3():return "其间旦暮闻何物", "杜鹃啼血猿哀鸣"s3 = test3() # ('其间旦暮闻何物', '杜鹃啼血猿哀鸣')
print(s3)# 连续赋值接收
a, b = test3()
print(a) # 其间旦暮闻何物
print(b) # 杜鹃啼血猿哀鸣
4 函数的互相调用和递归函数
4.1 函数相互调用
在代码中,一个函数调用另一个函数
需要注意函数什么时候执行结束
def test1():print("浔阳地僻无音乐", end=" ")def test2():test1()print("终岁不闻丝竹声")test2() # 浔阳地僻无音乐 终岁不闻丝竹声
4.2 递归函数
递归调用就是函数自己调用执行自己
递归函数的两个条件:
1)必须留出口
2)自己调用自己
递归调用一定要注意:
每次调用自己都会在内存中多复制一份~如果递归次数过多,最终会导致申请的内存消耗完了[内存溢出],导致程序崩溃。
# 打印5次指定字符
def test(num):if num == 0:returnprint("浔阳", num, end=" ")num = num - 1return test(num) # 浔阳 浔阳 浔阳 浔阳 浔阳test(5)
浔阳地僻无音乐,终岁不闻丝竹声——python函数相关推荐
- python函数-函数进阶
python函数-函数进阶 一.命名空间和作用域 1.命名空间 内置命名空间 -- python解释器 就是python解释器一启动就可以使用的名字存储在内置命名空间中 内置的名字在启动解释器的时候被 ...
- day-05 python函数
# #-*- coding:utf-8 -*-# 1:编写一个名为 make_shirt()的函数,它接受一个尺码以及要印到 T 恤上的字样.这个函数应打印一个句子,概要地说明 T 恤的尺码和字样.d ...
- python函数type的用意_Python内置函数Type()函数一个有趣的用法
Python内置函数Type()函数一个有趣的用法 今天在网上看到type的一段代码 ,然后查了一下文档,才知道type还有三个参数的用法. 以前只是知道type可以检测对象类型.然后发现了一个有趣的 ...
- Python Train_使用隐马尔可夫模型进行音乐流派分类的Python实现
音乐类型分类一直是音乐信息检索领域研究的热点问题.在本教程中,我们将尝试使用隐马尔可夫模型对音乐类型进行分类,隐马尔可夫模型非常擅长对时间序列数据进行建模.由于音乐音频文件是时间序列信号,我们希望HM ...
- python用于获取用户输入的函数是_在Python函数中,用于获取用户输入的是( )...
在Python函数中,用于获取用户输入的是( ) 答:input() 中国大学MOOC:\"骨质疏松症的特征是是以骨量减少.骨的微观结构退化,致使发生的严重后果是\"; 答:\&q ...
- Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1)
Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1) 1. 爬虫设计的技术 1)数据获取,通过http获取网站的数据,如urllib,urllib2,requests等模块: ...
- Python函数参数传递的几种形式
Python函数参数传递的几种形式 前言 位置传参 序列传参(单星号元组传参) 关键字传参 字典关键字传参(双星号字典传参) 混合传参 函数的缺省参数 结束 前言 莫听穿林打叶声,何妨吟啸且徐行.竹杖 ...
- Pass算子python 函数
Pass算子python 函数 函数 • 函数是代码的一种组织形式 • 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 • 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数 ...
- Python 函数的可变参数(*paramter与**paramter)的使用
Python 函数的可变参数主要有 *paramter与**paramter 可变参数主要有 *paramter的作用 接受任意多个实际参数并放到一个元组中 def people(*people):f ...
最新文章
- python中如何在写文件之前删除文件内容_Python:文件的读取、创建、追加、删除、清空...
- 攻防世界Reverse第一题Hello, CTF
- c#可移动不规则窗体
- Android开发笔记(一百二十二)循环器视图RecyclerView
- 大数据如何应用在企业人力资源管理
- 贝尔英才学院计算机,特稿 | 从高三的二模倒数第一到考取南京邮电大学贝尔英才学院,他仅用了半年!...
- html+css模拟京东商城登陆首页
- SDUT程序设计基础(一)往年期末考试题目题解(2018年)
- 利用python进行股票分析(五)通过tushare读取股票数据
- MLM模型中,是否应该按15%的比例mask?
- P1048 [NOIP2005 普及组] 采药
- 使用原汁原味的Java 语言
- 编译安装baas平台-cello-h3c
- 法国《队报》:贝利领衔世界杯32大传奇球员
- 电动车NFC一键启动(仪表总成、电源锁)_Ci522 Ci523_小体积超低成本13.56M非接触式读写器芯片
- numpy 数组和矩阵的乘法的理解
- 一天 用户旅程_我完成100天代码的旅程
- CSS圆角边框和盒子阴影
- 山西计算机专业英语,计算机专业英语(必懂)
- 计算机基础和wps office,办公装office还是wps好,wps和office哪个好用