文章目录

  • 一、函数定义与调用
    • 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)相关推荐

  1. 初识python评课稿_开平方函数 python

    信息举报 时间:2021-02-05 本页为您甄选多篇描写开平方函数 python,开平方函数 python精选,开平方函数 python大全,有议论,叙事 ,想象等形式.文章字数有400字.600字 ...

  2. Python 常用函数 - Python入门教程

    Python 常用函数 2021 年 3 月 12 日 上午 11:18 [编辑] Python print 函数(一) Python print 函数(二) Python format 函数 Pyt ...

  3. python uppercase函数_字符串-短rot13函数-Python

    字符串-短rot13函数-Python 我正在Python中寻找一个简短而又酷的rot13函数;-)我已经写了这个函数: def rot13(s): chars = "abcdefghijk ...

  4. python getsize函数,Python getsize函数

    Python getsize函数 Python getsize函数教程 在 getsize函数详解 语法 import os os.path.getsize(path) 参数 参数 描述 path 需 ...

  5. python循环展示大写字母_python调用大写函数python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  6. Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中通过索引名称提取数据 loc()函数 Python中通过 ...

  7. 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 ...

  8. html绑定带有形参的函数,Python中函数参数类型和参数绑定

    参数类型 Python函数的参数类型一共有五种,分别是: POSITIONAL_OR_KEYWORD(位置参数或关键字参数) VAR_POSITIONAL(可变参数) KEYWORD_ONLY(关键字 ...

  9. 【玩转云函数】腾讯云函数 Python 依赖安装

    以下内容来自「玩转腾讯云」用户原创文章,已获得授权. 本次作者主要是想利用腾讯云的 Serverless 云函数服务,由于腾讯云函数 Python 的环境只配置了基础的 Python 库, 比如流行的 ...

  10. python的时间函数,python时间函数(time)

    (一)时间获取 (1)time.time() 该函数用来获取当前时间的时间戳,是一个很长的float数字 time.time() 运行结果: 1600438898.135828 (2)time.cti ...

最新文章

  1. I - Watering Flowers CodeForces - 617C
  2. Linux C编程--main函数参数解析
  3. 【Codeforces】CF 5 C Longest Regular Bracket Sequence(dp)
  4. 【Cocos2d-X开发笔记】第一期 Cocos2d-X的环境搭建
  5. HTTP中response响应数据获取
  6. 第一家云创大数据产业学院在佛山职业技术学院挂牌
  7. 链接聚合是将一组物理接口_如何增加带宽,提升网络可靠性?
  8. 任务型对话(一)—— NLU/SLU(意识识别和槽值填充)
  9. 【Java数据结构】链式存储的二叉树
  10. 给我一个BigGAN,我就能开一家美术作品店,一幅画卖200美元
  11. jvm程序执行慢诊断手册
  12. OOP 术语:Arguments(参量)和 Parameters(参数)的区别(转载)
  13. android 点滴积累
  14. 如何把滑动条变好看一点
  15. 对vue的 v-for 循环中添加属性的方法的研究
  16. polygraph初体验
  17. [A133 Android11] 连接pc板子掉电
  18. swift 中使用 Alamofire+Moya+ObjectMapper,并做了一些功能封装
  19. python实现批量远程电脑传输文件
  20. 某某行政处罚文书网 (请求参数: ciphertext)

热门文章

  1. Windows 10 打印机驱动无法删除和卸载的解决办法
  2. 宽带提速后如何恰如其分的选择路由器?
  3. 家用计算机长期不关机的后果,长时间不关机对电脑有什么影响
  4. ABAQUS均布载荷的悬臂梁静力学计算
  5. 云计算有哪些?云计算排排坐,拿去不谢
  6. python字典(6)
  7. Yolov3模型使用教程
  8. 上月和本月对比叫什么_线雕前后对比,线雕做完后要注意什么事项即将上线
  9. JSON.parse解析json字符串必须注意的那些事
  10. 如何在Windows 10上的虚拟桌面之间快速切换