Python 函数的定义与使用

文章目录

1 函数的定义

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

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

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

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

  • 方法或功能

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

内置函数:

1print 2id 3int 4str 5max 6min 7range 8...

自定义函数:

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

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

image-20210128200324731

函数结果的返回 return

  • 将函数结果返回的关键字
  • 将函数结果返回的关键字
  • return只能在函数体内使用
  • return支持返回所有的 python类型
  • 有返回值的函数可以直接赋值给一个变量
1# coding:utf-8 2 3def capitalize(data): 4 index = 0 5 temp = '' 6 7 for item in data: 8 if index == 0: 9 temp = item.upper() 10 else: 11 temp += item 12 index += 1 13 print('for结束了') 14 return temp 15 print('finish') 16 17result = capitalize(data='hello xiaomu') 18print(result) 19 20def message(message, message_type): 21 new_message = '[%s] %s' % (message_type, message) 22 print(new_message) 23 24result = message(message='今天天气真好', message_type='info') 25print('message result', result) 26 27def test(): 28 for i in range(10): 29 if i == 5: 30 return i 31 32print('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之后可用
  • 函数不会对参数类型进行验证
1def person(name:str, age:int=33): 2 print(name,age)

5 局部变量与全局变量

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

global:

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

6 函数的递归

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

7 匿名函数 Tlambda

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

无参数:

1f = lambda:value 2f()

有参数:

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

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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''