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

[python] 函数1-函数基础

一 函数使用

1.1 基本用法

 def 函数名()
        函数体

  • 函数返回值: 返回调用的结果


def myPyFirstFunc():print("hello python")
myPyFirstFunc()

1.2 函数参数

def 函数名(形参a,形参b)

      函数体

def add(a,b):return a + b
print(add(1,2))
print(add(1,4))

二 函数参数

2.1 必备参数(位置参数)

  • 含义: 传递和定义参数的顺序及个数必须一致 格式: def func(a,b)

def func_1(id,passwd):print("id = ",id)print("passwd = ",passwd)
func_1(10086,123456)

2.2 默认参数

  • 函数: 为函数的参数提供一个默认值,如果调用时不传递就以默认的为主

  • 格式: 如果有位置参数,那么必须在默认参数之前

def func_2(id = 100001,passwd = '<PASSWORD>'):func_1(id,passwd)
func_2()

2.3 可变参数

  • 含义: 传入的值的数量是可以改变的,0-n个

  • 格式: def func(*args)

  • 接收: 是以元组的形式在函数内接受传递的参数的

def func_3(*args):print(args[0])
func_3('可变参数')

2.4 关键参数

  •  格式: def func(**kwargs)

  • 接受: 以字典的形式接受的形式

  • 传值: 需要采用  键 = 值

def func_4(**kwargs):print(kwargs)
func_4(id= "10001", passwd= "123456")

2.5 函数嵌套

  • 含义: 在一个函数里面调用另一个函数

func_2()

2.6 嵌套定义

  • 含义: 在一个函数里面定义另外一个函数

  • 注意: 不要在内层函数中调用外层循环,否则会陷入死循环

def out_func():print("调用外部函数")def in_func():print("调用内部函数")#in_func() # 如果这里不调用内部函数,外部调用out_func时,内部函数是不会被调用的
out_func()

三 作用域

  • 变量的有效范围分为: 全局变量和局部变量

3.1 全局变量

  • 函数外部定义的变量,在整个文件中都是有效的。

3.2 局部变量

  • 含义: 函数内部定义的变量,只能在函数内部使用

  • 注意: 如果全部变量和局部变量命名一样,在函数内会使用函数内的局部变量。而全局变量不会被使用

num = 10
def func_1():num = {1,2,3}print(num)
func_1()
print(num)

3.3 global关键字

  • 用法1 :在函数内部修改全局变量的值,可以使用global关键字
    否则在函数内部修改的全局变量不会生效

  • 用法2: 在函数内部使用global声明全局变量,外部可以使用.

id = 10001
def func_2():global idid = 10003
func_2()
print(id)

3.4 nonloacl:关键字

  • 含义: 声明外层的局部变量,只能在嵌套函数中使用,在外部函数中先进行声明内部函数进行nonloacl声明
    注意: 只能在嵌套函数中对上一层函数进行修改

a = 10
def out_func():a = 5def in_func():nonlocal aa = 20print("内函数的值a = %d"%a)in_func()print("外函数的值a = %d" % a)
out_func()
http://www.xdnf.cn/news/347671.html

相关文章:

  • 软考职称政策再加码!已有多地发布通知!
  • SiC MOSFET同步Buck DC-DC变换器的宽频混合EMI滤波器设计
  • 【嵌入式开发-UART】
  • docker 安装 sqlserver2022 和注意点
  • 模拟散列表(算法题)
  • Vue3中emits和emit
  • Qwen3中的MoE是如何平衡专家负载的?
  • 跨线程和跨进程通信还有多种方式对比
  • JS 下载data:image/png;base64, 图片
  • 告别手动输入密码:基于SSHPass的自动化文件传输实践告别手动输入密码:基于SSHPass的自动化文件传输实践
  • Marin说PCB之器件的3D数模匹配失效案例
  • 在微程序控制器中,各概念之间的详细关系
  • IEEE出版|2025年物联网、数据科学与先进计算国际学术会议(IDSAC2025)
  • MyBatis 动态 SQL 完整笔记
  • 深泽多层电路在PCB行业中属于什么水平
  • laravel 使用异步队列,context带的上下文造成反序列化出问题
  • sql server限制用户只能访问特定表
  • PWN基础-ROP技术-ret2syscall-64位程序栈溢出利用
  • el-table合并单元
  • 【基础知识】李雅普诺夫方程与李雅普诺夫函数
  • 985高校查重率“隐性阈值”:低于5%可能被重点审查!
  • 从艾米・阿尔文看 CTO 的多面特质与成长路径
  • 英皇娱乐X乐华娱乐携手造星!“英皇乐华青少年艺人培训班”正式启动!
  • 深度学习-159-综述之混合专家模型和推理模型以及工作流和智能体的概念
  • Elastic:如何构建由 AI 驱动的数字客户体验策略
  • 计算机网络-LDP工作过程详解
  • 代码随想录算法训练营第60期第三十天打卡
  • C++之set和map的运用
  • MySQL 数据库
  • AI人工智能在交通物流领域的应用