Python 函数的定义与使用

Bill78 等级 113 0 0

文章目录

1 函数的定义

把大象装进冰箱
1:把冰箱门打开
2:把大象装进去
3:把冰箱门关上

  • 将一件事情的步骤封装在一起并得到最终结果

  • 函数名代表了这个函数要做的事情

  • 函数体是实现函数功能的流程

  • 方法或功能

  • 函数可以帮助我们重复使用,通过函数名我们可以知道函数的作用

内置函数:

print
id
int
str
max
min
range
... 

自定义函数:

通过关键字def的功能,实现 python中函数的创建

def name(args...):
    todo something...
    return 返回值 

image-20210128200324731

函数结果的返回 return

  • 将函数结果返回的关键字
  • 将函数结果返回的关键字
  • return只能在函数体内使用
  • return支持返回所有的 python类型
  • 有返回值的函数可以直接赋值给一个变量
# coding:utf-8

def capitalize(data):
    index = 0
    temp = ''

    for item in data:
        if index == 0:
            temp = item.upper()
        else:
            temp += item
        index += 1
    print('for结束了')
    return temp
    print('finish')

result = capitalize(data='hello xiaomu')
print(result)

def message(message, message_type):
    new_message = '[%s] %s' % (message_type, message)
    print(new_message)

result = message(message='今天天气真好', message_type='info')
print('message result', result)

def test():
    for i in range(10):
        if i == 5:
            return i

print('test结果是:', test()) 

image-20210128200437728

2 return与prnt的区别

  • print只是单纯的将对象打印,不支持赋值语句
  • return是对函数执行结果的返回,也支持赋值语句

3 函数的传参

3.1 必传参数

  • 函数中定义的参数没有默认值,在调用函数时如果不传入则报错

  • 在定义函数的时候,参数后边没有等号与默认值

在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数且顺序与参数顺序相同,就是必传参数

image-20210128200600418

image-20210128200608796

3.2 默认参数

  • 在定义函数的时候,定义的参数含有默认值,通过赋值语句给他是一个默认的值
  • 如果默认参数在调用函数的时候给予了新的值,函数将优先使用后传入的值进行工作

image-20210128200706600

image-20210128200658840

3.3 不确定参数一可变参数

  • 没有固定的参数名和数量(不知道要传的参数名具体是什么)

  • *args代表:将无参数的值合并成元组

  • **kwargs代表将有参数与默认值的赋值语句合并成字典

image-20210128200743515

3.4 参数规则

image-20210128200839886

  • 参数的定义从左到右依次是必传参数,默认参数,可变元组参数?,可变字典参数
  • 函数的参数传递非常灵活
  • 必传参数与默认参数的传参多样化

4 函数的参数类型定义

  • 函数定义在 python37之后可用
  • 函数不会对参数类型进行验证
def person(name:str, age:int=33):
    print(name,age) 

5 局部变量与全局变量

  • 在 python脚本最上层代码块的变量
  • 全局变量可以在函数内被读取使用

global:

将全局变量可以在函数体内进行修改

6 函数的递归

一个函数不停的将自己反复执行

7 匿名函数 Tlambda

  • 定义一个轻量化的函数
  • 即用即删除,很适合需要完成一项功能,但是此功能只在此一处使用

无参数:

f = lambda:value
f() 

有参数:

f = lambda x,y:x*y
f(3,4) 

本文转自 https://tangxing.blog.csdn.net/article/details/113357483,如有侵权,请联系删除。

预览图
收藏
评论区