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

python第3天之函数

深入理解 Python 中的函数

简介

        在编程中,函数是组织和复用代码的基本单元。Python 作为一门高级编程语言,提供了丰富的函数特性来帮助开发者编写清晰、模块化和高效的代码。在本文中,我们将深入探讨 Python 函数的定义、调用、参数、返回值、作用域等关键概念。

定义函数

        函数通过 def 关键字定义。函数体开始于冒号(:)后面,并且缩进的代码块表示函数内部的语句。

def function_name(parameters):
    """函数文档字符串(docstring)"""
    # 函数体
    ...

调用函数

        一旦定义了函数,就可以通过函数名以及括号内的实际参数来调用它。

# 调用之前定义的函数 
function_name(arguments) 

参数和实参

        函数参数是定义函数时列出的变量,而实际参数(实参)是在函数调用时传递给函数的值。Python 支持位置参数、关键字参数、默认参数、可变参数列表和可变关键字参数。

默认参数

        默认参数允许你为参数指定默认值,如果调用函数时没有传递该参数,则会使用默认值。

def greet(name='World'): 
    print(f"Hello, {name}!") 

greet() # 输出: Hello, World! 
greet("Alice") # 输出: Hello, Alice! 

        注意:多个参数时在默认值参数右侧不能出现没有默认值的参数

def display(a,b=1,c=2):
    print(a,b,c)

dispaly(1)#输出结果4

可变参数

位置参数

        函数传参时,形参和实参需要一 一对应

def show(n,s):
    for c in s:
        print(f'{n}--{c}')
#函数调用
show(1,'hello')

#输出结果
1 -- h
1 -- e
1 -- l
1 -- l
1 -- o

        不定长位置参数:通过在参数名前加星号(*),可以让函数接收不定数量的位置参数,这些参数被存储为一个元组。

def add(*args): 
    return sum(args) 

print(add(1, 2, 3)) # 输出: 6 
关键字参数

        关键字参数解决了参数传递时的顺序问题,通过使用关键字和参数一一对应,可以实现无序传递

def show(n,s):
    for c in s:
        print(f'{n} -- {c}')

show(s='hello',n=1)

        不定长关键字参数:通过在参数名前加两个星号(**),可以接收不定数量的关键字参数,这些参数被存储为一个字典。

def profile(**kargs): 
    for key, value in kargs.items(): 
        print(f"{key}: {value}") 

profile(name="Alice", age=30, job="Developer") 

参数综合

一、定义一个可以接收任何参数的函数

def display(*args,**kwargs):
    print(f'args:{args}')
    print(f'kwargs:{kwargs}')
display()
display(1,2,3)
display(a=1,b=2)
display(1,2,3,4,a=1,b=2)

#位置参数不能放在关键字参数后面  因为你定义的时候把不定长位置参数放在不定长关键字参数前面的
display(a=1,b=2,2,3,4)#这行代码会报错

二、混合写法(先把abcde赋值然后关键字参数前面的都是不定长位置参数,随后定长关键字参数随后不定长关键字参数)

def func(a, b, c, d, e, *args, f=1, g=2, **kwargs):
    print(a,b,c,d,e)
    print(args)
    print(f,g)
    print(kwargs)
func(1,2,3,4,5,5,6,7,8,9,f=11,g=22,h=333,i=444)

返回值

  return 语句用于从函数中返回值。如果没有 return 语句或者 return 后面没有任何值,函数将返回 None。遇见return直接结束函数执行。

def square(number): 
    return number**2 
result = square(4) 
print(result) # 输出: 16 

作用域

        在 Python 中,变量的作用域是由变量定义的位置决定的。函数中定义的变量拥有局部作用域,而在函数外定义的变量则拥有全局作用域。

        解释器在执行代码时,发现return 后成如果有多个值 ,那么就会将这多个值 ,直接组包成一个元组。然后将这个元组返回。

x = "global" 
def func(): 
    y = "local" 
    print(y) # 输出: local 
    print(x) # 输出: global 

func() 
print(x) # 输出: global 
# print(y) # 错误: y 在此不可用,因为它是局部变量

文档字符串

        每个函数都可以有一个文档字符串(docstring),它通常用三引号括起来。文档字符串用于解释函数的目的和如何使用它。

def greet(name): 
"""向用户发出问候""" 
    print(f"Hello, {name}!") 

总结

        Python 中的函数是编程中不可或缺的工具,它们帮助我们以结构化和高效的方式组织代码。通过深入了解函数的各种特性,我们可以更好地管理代码的复杂性,编写出易于阅读和维护的程序。掌握 Python 函数的使用将使你在编程路上更进一步。


http://www.kler.cn/a/155481.html

相关文章:

  • 【机器学习】机器学习中用到的高等数学知识-2.概率论与统计 (Probability and Statistics)
  • Java项目实战II基于微信小程序的个人行政复议在线预约系统微信小程序(开发文档+数据库+源码)
  • 分享一个傻瓜式一键启动的加速器
  • 【前端】JavaScript高级教程:线程机制与事件机制
  • aws(学习笔记第十二课) 使用AWS的RDS-MySQL
  • 后端接口返回二进制文件,前端 window.opent预览展示
  • Windows :VSCode安装和运行Django
  • 解决:IDEA的debug模式只有第一次能拦截请求进行debug,后续所有请求全部失效
  • Apache Doris 详细教程(二)
  • <蓝桥杯软件赛>零基础备赛20周--第8周第2讲--排序的应用
  • zabbix监控nginx
  • 营业执照上包含信息详解
  • go自定义端口监听停用-------解决端口被占用的问题
  • 理解宏任务和微任务:JavaScript 异步编程的必备知识(上)
  • JavaScript学习-1
  • [Firefly-Linux] RK3568 pca9555芯片驱动详解
  • 使用 SDKMAN 管理多版本本地 Java 环境---Centos8 Windows
  • Java中各种数据类型之间的转换
  • 【OpenCV】图像上绘制文字cv2.putText()函数用法,添加倾斜透明水印
  • 说说你所了解的Java代理,有遇到过Spring Aop失效场景吗
  • [原创]C++98升级到C++20的复习旅途-从汇编及逆向角度去分析“constexpr“关键字
  • Centos7设置永久路由
  • 线性表 力扣67. 二进制求和
  • 三、Zookeeper数据模型
  • 价值投资选股的方法
  • synchronized的实现原理