python函数

函数的定义

**定义:**将具有独立功能的代码块组成一个整体,使其具有特殊功能的代码集。

**作用:**使用函数可以加强代码的复用性,提高程序编写的效率。

结构:

复制代码
def 函数名():
    函数体

**注意:**函数名要符合标识规定,最好见名知意。

函数:

复制代码
def hello_elysia():
    print('hello,elysia')
​
hello_elysia()

输出:

复制代码
hello,elysia

返回值return

含义:函数执行结束后,最后给调用者的一个结果。

函数:

复制代码
def hello_elysia():
    return 'hello,elysia'
​
hello_elysia()

直接调用没有回显,需要我们打印

复制代码
def hello_elysia():
    return 'hello,elysia'
print('不打印的结果:')
hello_elysia()
print('打印后的结果:')
print(hello_elysia())

输出:

复制代码
不打印的结果:
打印后的结果:
hello,elysia

注意:return后面的代码将不再执行

函数:

复制代码
def hello_elysia():
    return 'hello,elysia'
    return 520
    print('hello,seele')
print(hello_elysia())

输出:

复制代码
hello,elysia

return返回多个值,以元组的形式返回给调用者

函数:

复制代码
def hello_elysia():
    return 'hello,elysia',520,1314
print(hello_elysia())

输出:

复制代码
('hello,elysia', 520, 1314)
返回值的三种情况
  1. 一个返回值也没有,返回的结果是None

  2. 一个返回值,就把值返回给调用者

  3. 多个返回值,以元组的形式返回给调用者

参数

定义格式:

复制代码
def 函数名(形参a,形参b)
    函数体

调用格式:

复制代码
函数名(实参a,实参b)

函数:

复制代码
def hello_darling(name, days):
    print(f'hello,{name}!520{days}!')
​
hello_darling('elysia', 1314)
# name,days是形参
# elysia,1314是实参

输出:

复制代码
hello,elysia!5201314!
必备参数

含义:必备参数是在函数定义中未指定默认值的参数。当调用函数时,必须为这些参数提供相应的值。

默认参数

含义:为函数提供默认值,调用函数时可以不传该默认参数的值

注意:所有的位置参数必须出现在默认参数前,包括函数定义和调用

格式:

复制代码
def fun(形参=默认值)
    函数体

函数:

复制代码
def hello_darling(name, days=1314):
    print(f'hello,{name}!520{days}!')
​
​
hello_darling('elysia')

输出:

复制代码
hello,elysia!5201314!
可变参数

含义:传入的值的数量是可以改变的,可以传入多个,也可以不传

格式:

复制代码
def fun(*args)
    函数体
    return

函数:

复制代码
def hello_darling(*args):
    print(args)
    print(type(args))
​
hello_darling('elysia','seele')

输出:

复制代码
('elysia', 'seele')
<class 'tuple'>

注意:可以把args改成其他参数名,但是args符合代码规范性;*args将实参所有的位置参数接受,放置在一个元组中

关键字参数
复制代码
def fun(**kwargs):
    函数体

**kwargs:接受所有的关键字参数将其转换成一个字典赋值给kwargs

作用:可以扩展函数的功能

函数:

复制代码
def hello_darling(**args):
    print(args)
    print(type(args))
​
hello_darling()#返回字典
hello_darling(name='elysia',age=18)

#传值的时候,需要用键=值的形式

输出:

复制代码
{}
<class 'dict'>
{'name': 'elysia', 'age': 18}
<class 'dict'>

函数的嵌套

嵌套的定义:在一个函数中定义另一个函数,缩进决定层级。

例子1:

函数:

复制代码
def hello_lover(name,days):
    print(f'hello,{name}!520{days}!')
​
def hello_darling():
    print('you are my darling!')
​
def lover_darling():
    hello_lover('elysia',1314)
    hello_darling()
#在lover_darling()中调用hello_lover()和hello_darling()函数
lover_darling()

输出:

复制代码
hello,elysia!5201314!
you are my darling!

例子2:

函数:

复制代码
def lover_darling():
    def hello_lover(name, days):
        print(f'hello,{name}!520{days}!')
    hello_lover('elysia', 1314)
​
# 在lover_darling()中定义并调用hello_lover()函数
lover_darling()

输出:

复制代码
hello,elysia!5201314!
you are my darling!

注意:函数需要调用才能执行,所以上面的hello_lover('elysia', 1314)是在调用函数内定义的新函数;调用时注意缩进;不要在内层函数中调用外层函数,会陷入死循环,直到超过地递归的最大深度

相关推荐
前路不黑暗@8 分钟前
C语言:操作符详解(二)
c语言·开发语言·经验分享·笔记·学习·学习方法·visual studio
三年呀12 分钟前
标题:移动端安全加固:发散创新,筑牢安全防线引言:随着移动互联网
网络·python·安全
深盾科技1 小时前
Kotlin Data Classes 快速上手
android·开发语言·kotlin
zzywxc7871 小时前
详细探讨AI在金融、医疗、教育和制造业四大领域的具体落地案例,并通过代码、流程图、Prompt示例和图表等方式展示这些应用的实际效果。
开发语言·javascript·人工智能·深度学习·金融·prompt·流程图
关山1 小时前
MCP实战
python·ai编程·mcp
浮灯Foden1 小时前
算法-每日一题(DAY13)两数之和
开发语言·数据结构·c++·算法·leetcode·面试·散列表
悠哉悠哉愿意2 小时前
【Python语法基础学习笔记】if语句
笔记·python·学习
淡海水2 小时前
【原理】Struct 和 Class 辨析
开发语言·c++·c#·struct·class
Q_Q19632884752 小时前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
BYSJMG2 小时前
计算机大数据毕业设计推荐:基于Hadoop+Spark的食物口味差异分析可视化系统【源码+文档+调试】
大数据·hadoop·分布式·python·spark·django·课程设计