函数(python)
文章目录
- 一、函数定义与调用
- 1、为什么要设计和编写函数?
- 2、函数的语法格式
- 3、使用函数计算斐波那契数列中小于参数n的所有值
- 4、递归函数
- 韩罗塔(hanoi)
- 二 、形参与实参
- 1、形参和实参的定义
- 2、例
- 三、参数类型
- 1、默认值类型
- 1.1、定义
- 1.2、例
- 2、关键参数
- 2.1、定义
- 2.2、例
- 3、可变长度参数
- 3.1、定义
- 3.2、例
- ①*parameter
- ②**parameter
- 4、参数传递时的序列解包
- 4.1、定义
- 4.2、例
- ①列表
- ②元组
- ③字典
- 键为参数
- 值为参数
- 键值对为参数
- 四、return语句
- 五、变量的作用域
- 1、全局变量
- 2、局部变量
- 3、nonlical变量
- 六、lambda表达式
- 6.1、定义
- 6.2、例
一、函数定义与调用
1、为什么要设计和编写函数?
多次执行的相似甚至完全相同的代码块,为了避免直接复制代码块的方法实现复用,通过设计和编写函数还实现对多次复用。以便于代码维护和代码测试,以及代码可读性。
2、函数的语法格式
python在定义函数时不需要指定参数类型
'''
@Author :S1Lu
@Date :2022/10/21 11:10
'''def 函数名([参数列表]):'''注释''函数体
3、使用函数计算斐波那契数列中小于参数n的所有值
'''
@Author :S1Lu
@Date :2022/10/21 11:10
'''
def fib(n):a , b = 1 , 1while a < n:print(a,end=' ')a , b = b , a+b
fib(100)
4、递归函数
如果在函数体中有调用函数自身的代码,这就称为递归函数
例:
韩罗塔(hanoi)
'''
@Author :S1Lu
@Date :2022/10/21 11:10
'''
def f(n):if n==0:return 0else:return 2*f(n-1)+1
x=int(input("请输入片的个数:"))
print("需要移动",f(x),"次")
二 、形参与实参
1、形参和实参的定义
在函数定义时括号内时使用逗号分隔开的形参列表,在函数调用时向其传递实参,讲实参的引用传递给形参。(一个函数可以没有形参,说明这个函数不接收参数)
2、例
'''
@Author :S1Lu
@Date :2022/10/21 11:10
'''def addOne(a): #形参aprint(a)a += 1print(a)
addOne(3) #给a传递参数
三、参数类型
1、默认值类型
1.1、定义
语法格式
def 函数名(...,形参名=默认值):函数体
可以通过函数名.__defaults__
查看函数的所有默认值参数的当前值
1.2、例
'''
@Author :S1Lu
@Date :2022/10/21 11:10
'''
def f(a="a",b="b",c="c"):return
print(f.__defaults__)'''运行结果
('a', 'b', 'c')
'''
2、关键参数
2.1、定义
通过关键参数可以按参数名字传递实参,实参顺序可以和形参顺序不一致,但不影响参数的传递结果。
2.2、例
'''
@Author :S1Lu
@Date :2022/10/21 14:01
'''
def demo(a,b,c=5):print(a,b,c)demo(3,7) #位置参数a,b 参数c使用默认值
print("=========================================")
demo(c=8,a=9,b=0) #关键参数'''运行结果
3 7 5
=========================================
9 0 8
'''
3、可变长度参数
3.1、定义
两种形式 ①
*parameter
②**parameter
,前者用来接收任意多个位置实参
并将其放在一个元组
中,后者接受关键参
数并将其放入字典
中
3.2、例
①*parameter
'''
@Author :S1Lu
@Date :2022/10/21 14:07
'''
def demo(*p):print(p)
demo(1,2,3)'''运行结果
(1, 2, 3)
'''
②**parameter
'''
@Author :S1Lu
@Date :2022/10/21 14:07
'''
def demo(**p):for item in p.items():print(item)print(p)
demo(x=1,y=2,z=3)
'''运行结果
('x', 1)
('y', 2)
('z', 3)
{'x': 1, 'y': 2, 'z': 3}
'''
4、参数传递时的序列解包
4.1、定义
为含有多个形参的函数传递参数时,可以使用python列表、元组、集合、字典以及其他可以迭代的对象作为
实参
,并在实参名称前加一个星号
,python解释器将自动进行解包,然后传递
给对多个位置形参
,必须保证实参中的元素个数和形参个数相等
,否则会出现错误
4.2、例
①列表
'''
@Author :S1Lu
@Date :2022/10/21 14:12
'''
def demo(a,b,c):print(a,b,c)
seq = [1,2,3]
demo(*seq)
'''运行结果
1 2 3
'''
②元组
'''
@Author :S1Lu
@Date :2022/10/21 15:12
'''
def demo(a,b,c):print(a,b,c)
tup = (1,2,3)
demo(*tup)
'''运行结果
1 2 3
'''
③字典
键为参数
'''
@Author :S1Lu
@Date :2022/10/21 15:13
'''def demo(a,b,c):print(a,b,c)
dict = {'a':97,'b':98,'c':99}
demo(*dict) #以键为参数
'''运行结果
a b c
'''
值为参数
通过 两个星号或者使用values()方法
'''
@Author :S1Lu
@Date :2022/10/21 15:13
'''def demo(a,b,c):print(a,b,c)
dict = {'a':97,'b':98,'c':99}
demo(**dict) #以值为参数
'''运行结果
97 98 99
'''
'''
@Author :S1Lu
@Date :2022/10/21 15:13
'''def demo(a,b,c):print(a,b,c)
dict = {'a':97,'b':98,'c':99}
demo(*dict.values()) #以值为参数
'''运行结果
97 98 99
'''
键值对为参数
通过items()方法
'''
@Author :S1Lu
@Date :2022/10/21 15:13
'''def demo(a,b,c):print(a,b,c)
dict = {'a':97,'b':98,'c':99}
demo(*dict.items())
'''运行结果
('a', 97) ('b', 98) ('c', 99)
'''
四、return语句
return语句用来从函数中
返回
并结束函数
的执行
五、变量的作用域
1、全局变量
在函数中修改或声明全局变量要使用global
声明
2、局部变量
3、nonlical变量
在函数套函数中使用
例:
'''
@Author :S1Lu
@Date :2022/10/21 15:13
'''
def demo01():x = "Bill"def demo02():nonlocal xx = "hello"demo02() return x
print(demo01())
'''运行结果
hello
'''
六、lambda表达式
6.1、定义
用来声明匿名函数
6.2、例
'''
@Author :S1Lu
@Date :2022/10/21 17:19
'''
f = lambda x,y,z:x+y+z'''运行结果
6
'''
函数(python)相关推荐
- 初识python评课稿_开平方函数 python
信息举报 时间:2021-02-05 本页为您甄选多篇描写开平方函数 python,开平方函数 python精选,开平方函数 python大全,有议论,叙事 ,想象等形式.文章字数有400字.600字 ...
- Python 常用函数 - Python入门教程
Python 常用函数 2021 年 3 月 12 日 上午 11:18 [编辑] Python print 函数(一) Python print 函数(二) Python format 函数 Pyt ...
- python uppercase函数_字符串-短rot13函数-Python
字符串-短rot13函数-Python 我正在Python中寻找一个简短而又酷的rot13函数;-)我已经写了这个函数: def rot13(s): chars = "abcdefghijk ...
- python getsize函数,Python getsize函数
Python getsize函数 Python getsize函数教程 在 getsize函数详解 语法 import os os.path.getsize(path) 参数 参数 描述 path 需 ...
- python循环展示大写字母_python调用大写函数python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
- Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数
[小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中通过索引名称提取数据 loc()函数 Python中通过 ...
- L1, L2, smooth_L1 Loss函数python实现
L1, L2, smooth_L1函数python实现 L1 loss def L1(y_gt, y_pre):loss = np.sum(np.abs(y_gt - y_pre))print(los ...
- html绑定带有形参的函数,Python中函数参数类型和参数绑定
参数类型 Python函数的参数类型一共有五种,分别是: POSITIONAL_OR_KEYWORD(位置参数或关键字参数) VAR_POSITIONAL(可变参数) KEYWORD_ONLY(关键字 ...
- 【玩转云函数】腾讯云函数 Python 依赖安装
以下内容来自「玩转腾讯云」用户原创文章,已获得授权. 本次作者主要是想利用腾讯云的 Serverless 云函数服务,由于腾讯云函数 Python 的环境只配置了基础的 Python 库, 比如流行的 ...
- python的时间函数,python时间函数(time)
(一)时间获取 (1)time.time() 该函数用来获取当前时间的时间戳,是一个很长的float数字 time.time() 运行结果: 1600438898.135828 (2)time.cti ...
最新文章
- I - Watering Flowers CodeForces - 617C
- Linux C编程--main函数参数解析
- 【Codeforces】CF 5 C Longest Regular Bracket Sequence(dp)
- 【Cocos2d-X开发笔记】第一期 Cocos2d-X的环境搭建
- HTTP中response响应数据获取
- 第一家云创大数据产业学院在佛山职业技术学院挂牌
- 链接聚合是将一组物理接口_如何增加带宽,提升网络可靠性?
- 任务型对话(一)—— NLU/SLU(意识识别和槽值填充)
- 【Java数据结构】链式存储的二叉树
- 给我一个BigGAN,我就能开一家美术作品店,一幅画卖200美元
- jvm程序执行慢诊断手册
- OOP 术语:Arguments(参量)和 Parameters(参数)的区别(转载)
- android 点滴积累
- 如何把滑动条变好看一点
- 对vue的 v-for 循环中添加属性的方法的研究
- polygraph初体验
- [A133 Android11] 连接pc板子掉电
- swift 中使用 Alamofire+Moya+ObjectMapper,并做了一些功能封装
- python实现批量远程电脑传输文件
- 某某行政处罚文书网 (请求参数: ciphertext)