Python函数

模块化编程指把程序进行封装(函数封装,面向对象,文件)

什么是函数?

函数==>功能:就是具有特定功能的代码块

函数的作用?

函数就是把代码进行封装,以提高代码的重用性,提高开发效率,并且降低了后期的维护成本。

函数的定义和使用?

# 定义函数[基本函数]
def 函数名([参数列表]):
    当前函数的具体功能代码
    当前函数的具体功能代码
    ...
# 函数封装完并不会执行,只是把函数定义了而已。如果想使用已经定义的函数,那么就需要函数调用
# 函数调用
函数([参数列表])

code:

  • 函数定义---普通参数

  • 函数定义---默认参数

  • 函数定义---收集参数

  • 函数定义---命名关键字参数

  • 函数定义---关键字参数收集

  • 函数返回值

"""
函数可以分为两类:
1.执行过程函数:函数体内完成一定的功能即可,没有返回值
2.具有返回值的函数:函数体完成一定的功能,并且返回一个结果到函数调用处
"""


# ******************************************
# 函数定义---普通参数:就是必须传递的参数
def love():
    print("i love you")


# ******************************************
# 函数参数
# 函数在定义时,可以在参数列表的位置定义形参
# 如果函数有形参,那么在调用时必须传递参数(实参)
# 实参传递给形参的过程,本质上就是变量的赋值操作
def lovejasmine(w):
    print(f"i love you {w}")


# 函数定义---默认参数:在定义形参时指定默认值(和C++一样)
def loveyou(x, w='Jasmine'):
    print(f"{x} love {w}")


# 函数定义---收集参数:定义一个形参专门收集多余的实参 或者理解为---不确定需要传递多少个实参,直接用一个形参来接收
# 在定义函数时如果需要收集参数,那么这个形参前面需要加一个*号 例如*args(args可以是别的名字)
# 接收的多余的参数会存储在args中,形成一个元组
def func(x='+', *args):
    print(type(args))
    if x == '+':
        print('加法运算', sum(args))
    else:
        print('减法运算', sum(args))


# 函数定义---命名关键字参数 在调用时必须给形参的名字传递参数
# 定义在收集参数之后的参数就是命名关键字参数
def func2(a, b, c=10, *args, name):
    print(a, b, c, *args, name)


# 函数定义---关键字参数收集---kw==keyword---会把多余的关键字参数收集为字典
def func3(a, b, c=3, *args, name, **kwargs):
    print(a, b, c)
    print(name, type(name))
    print(args, type(args))
    print(kwargs, type(kwargs))


# ******************************************
# 函数返回值---函数完成功能后按需返回数据
# 使用return关键字来指定返回数据,可以返回一些任意类型的数据
# 函数的返回值,会把数据返回到调用处,可以使用变量接收或直接作为函数的参数等
# 没有返回值的函数---这句之前定义的函数都是没有返回值的函数
# return意味着函数的结束,return后面的语句不再执行
# 没有返回值的函数会返回一个None,None是一个特殊的数据,就表示没有的意思
def func4(a, b):
    if a > b:
        return a
    else:
        return b


# 函数调用---函数定义后,不调用不执行---
# 在函数定义之后才能调用函数---可以无限次调用已定义函数
# 函数名要遵循命名规范---函数名冲突的话会被覆盖
# 函数定义了几个参数,那么在调用时就必须按指定顺序进行参数的传递
print("#普通参数**********************************************")
love()
lovejasmine('Jasmine')
print("#默认参数**********************************************")
loveyou('Boooooo~')
loveyou('Boooooo~', 'Jasmine')
print("#收集参数**********************************************")
func('+', 123, 456, 789)
print("#命名关键字参数**********************************************")
func2(1, 2, 3, 4, 5, 6, 7, 8, name=9)
print("普通函数也可以使用关键字传参方式-----------------")
lovejasmine(w="Booooooo")  # 但是呢最好不要用,因为在函数参数类型较多时,运行可能会报错
print("#关键字参数收集**********************************************")
func3(1, 2, 3, 4, 5, 6, name=7, sex='girl', age=24)
# 注意形参声明的顺序--普通参数、默认参数、收集参数、关键字参数、关键字收集参数
# 极少情况下会出现五种类型的形参,一般情况下有普通参数、收集参数、关键字参数
print("#函数返回值**********************************************")
x = func4(10, 11)
print(f'who is bigger? {x}')

运行结果:

E:\Programs_Way\Python\python.exe D:/Prj/Python/Study_Basic_Grammar/_13Function.py
#普通参数**********************************************
i love you
i love you Jasmine
#默认参数**********************************************
Boooooo~ love Jasmine
Boooooo~ love Jasmine
#收集参数**********************************************
<class 'tuple'>
加法运算 1368
#命名关键字参数**********************************************
1 2 3 4 5 6 7 8 9
普通函数也可以使用关键字传参方式-----------------
i love you Booooooo
#关键字参数收集**********************************************
1 2 3
7 <class 'int'>
(4, 5, 6) <class 'tuple'>
{'sex': 'girl', 'age': 24} <class 'dict'>
#函数返回值**********************************************
who is bigger? 11

Process finished with exit code 0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jasmine-Lily

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值