当前位置: 首页 > news >正文

第二十一章 函数(Python)

文章目录

  • 前言
  • 一、定义函数
  • 二、函数参数
  • 三、参数类型
  • 四、函数返回值
  • 五、函数类型
    • 1、无参数,无返回值
    • 2、无参数,有返回值
    • 3、有参数,无返回值
    • 4、有参数,有返回值
  • 六、函数的嵌套
  • 七、全局变量和局部变量
    • 1、局部变量
    • 2、全局变量


前言

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。

一、定义函数

'''
def 函数名():函数封装的代码
'''def demo():print("函数")demo()	# 函数

二、函数参数

'''
求和:a+b
'''def a_sum_b(a, b):a_b = a + bprint(a_b)a_sum_b(a=1, b=2)	# 3

三、参数类型

# 位置实参  ,按照参数顺序,给形参传递数据
def func(a, b):sum1 = a + bprint(sum1)func(1, 2)# 关键字实参 ,指定任何对应的形参,称为关键字实参
def func(a, b):sum1 = a + bprint(sum1)func(b=1, a=4)# 默认形参,形参设定默认值,称为默认形参   ,调用函数时,如果没有传入默认参数对应的实参,则使用默认值。
def func(a, b=10):sum1 = a + bprint(sum1)func(1, 2)  # 3
func(1)  # 11# 可变形参
'''
元组型可变形参:用于接收任意数量的位置实参可变形参的前边需要添加*,用于提示python解释器该参数为可变形参本质是将传递的参数包装成了元组使用可变形参直接用即可(不需要加*)args
'''def func(*args):'''求和'''result = 0for num in args:result += numprint(result)func(1, 2, 3)'''
字典型可变形参:可以接收任意数量的关键字实参定义参数时需要在形参名前添加**可变形参会将 关键字参数包装成字典
'''def func(name, **kwargs):  # 已经存在的形参, 其对应的关键字实参 不会被包装到字典中。字典型可变形参必须在形参列表的最后边print(name)  # 张三print(kwargs)  # {'age': '18'}func(name="张三", age="18")

四、函数返回值

'''
求和:a+b
'''def a_sum_b(a, b):a_b = a + breturn a_ba_b = a_sum_b(a=1, b=2)
print(a_b)  # 3

五、函数类型

1、无参数,无返回值

def demo():print("函数")

2、无参数,有返回值

def demo():return "函数"

3、有参数,无返回值

def demo(s):print(s)s = "函数"
demo(s)	 # 函数

4、有参数,有返回值

def demo(a, b):return a + ba = "函数"
b = "你好!"
res = demo(a, b)
print(res)  # 函数你好!

六、函数的嵌套

函数里面调用另一个函数

def demo1():print("函数")demo2()def demo2():print("你好!")demo1()

七、全局变量和局部变量

1、局部变量

'''
局部变量:定义:函数内部定义的变量,不同的函数内可以定义相同名字的变量,且互不影响。特点:局部变量的作用域只再函数内部目的:存储需要临时保存的数据
'''def func():a = 10print(a)func()  # 10
print(a)  # 报错:	NameError: name 'a' is not defined

2、全局变量

'''
全局变量:定义:函数外边定义的变量叫做全局变量特点:全局变量能够在所有的函数中进行访问
'''
a = 10  # 全局变量def func():print(a)func()  # 10
print(a)  # 10'''
函数内如何修改全局变量,需要用到 global
'''
a = 10def func():global aa = 9print(a)func()  # 9
print(a)  # 9
http://www.lryc.cn/news/388922.html

相关文章:

  • 使用pyqt5编写一个七彩时钟
  • 【Linux】:命令行参数
  • 高考假期预习指南,送给迷茫的你
  • 独孤思维:负债了,还可以翻身吗
  • SwiftUI八与UIKIT交互
  • RedHat9 | 内部YUM本地源服务器搭建
  • 无偏归一化自适应心电ECG信号降噪方法(MATLAB)
  • AI基本概念(人工智能、机器学习、深度学习)
  • LabVIEW幅频特性测试系统
  • 校园卡手机卡怎么注销?
  • logback自定义规则脱敏
  • 高效批量复制与覆盖:一键实现文件管理,轻松应对同名文件,简化工作流程
  • vue3中使用Antv G6渲染树形结构并支持节点增删改
  • 【PB案例学习笔记】-26制作一个带浮动图标的工具栏
  • 反向沙箱技术:安全隔离上网
  • 前端在for循环中使用Element-plus el-select中的@click.native动态传参
  • Oracle SQL - CONNECT BY语句Where条件中不能使用OR?[已解决]
  • python-逻辑语句
  • 【stm32】大一上学期笔记复制
  • LeetCode题练习与总结:二叉树的前序遍历--144
  • 如何优化Spring Boot应用的性能
  • 人工智能--目标检测
  • Java基础之List实现类
  • java List接口介绍
  • 调度器APScheduler定时执行任务
  • git合并分支的疑问
  • catia数控加工仿真Productlist无法添加部件或零件
  • 关于Pycharm右下角不显示解释器interpreter的问题解决
  • 为什么word生成的PDF内容显示不全?
  • JVM专题十三:总结与整理(持续更新)