python中的函数(全)

函数的定义

概述:将一段经常使用的函数封装起来,减少重复代码,一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能

python中,定义函数时要用到def

语法结构:

def 函数名称(参数):

函数体

return 返回值

函数在有返回值的情况下会根据实际情况进行返回,如果函数没有返回值则返回None

  1. 在定义函数时,如果暂时还没想法可以用pass进行跳过
  2. 函数可以返回多个值,即return后可以跟多个参数,但函数本身返回只有一个值,其值为元组
  3. 函数名称是指向函数对象的引用,当 把一个函数名称赋值给一个变量就是给它起了一个别名

函数的分类

根据有无参数分类:

  • 有参函数
  • 无参函数

根据有无返回值分类:

  • 有返回值函数
  • 无返回值函数

根据定义者分类:

  • 系统自定义函数
  • 第三方函数

全局变量和局部变量

全局变量:定义在py文件中的变量

特点:在代码运行过程中始终有效

局部变量:定义在函数中的变量

特点:函数外部无法访问函数内的变量即局部变量

函数内部可以访问全局变量,但不能修改全局变量,如果需要在函数内部修改全局变量,则要用到global关键字,一般不建议使用

值传递与引用传递

值传递:值传递时,当函数的形参发生变化不会影响实参的值

python中的函数(全)

python中的函数(全)

引用传递:引用传递时,当函数的形参发生变化会影响实参的值

python中的函数(全)

python中的函数(全)

其中的a,b都代表的是内存地址,代表的是函数本身,而a(),b()代表的是函数的返回值,当没有返回值时,则返回None

值传递适合于不可变类型的实参(字符串、数字、元组),引用传递适合于可变类型的实参(列表、字典)

在弱数据语言中,函数是可以作为参数传递到另一个函数中

函数的递归

在python中函数可以调用其他函数,而 函数递归就是函数自己本身调用自己

函数递归必须要有终止条件,如果没有终止条件,函数就会陷入死循环,python中会报错

python中的函数(全)

python中的函数(全)

栈溢出问题:递归调用层次过多,递归函数在运行时会进行压栈操作,当压栈次数过多时,会导致堆栈溢出

解决方法:尾递归优化

尾递归:函数自己调节自己,要有终止条件,return语句中不能包含表达式

python中的函数(全)

python中的函数(全)

递归优缺点:

  • 逻辑简单清晰
  • 过深的递归会造成栈溢出问题

python解释器并没有对尾递归优化,所以在python中任何的递归都会造成栈溢出问题

匿名函数

概念: 没有名称的函数,使用lambda关键字来定义

语法结构:lambda 参数 :函数体

由于lambda返回的是函数对象,因此我们需要用一个变量去接收

python中的函数(全)

python中的函数(全)

匿名函数可以无参数、一个参数或多个参数,可以作为一个参数进行传递,也可以作函数的返回值

偏函数

在python中,调用函数时我们想要其中的一个值设置为一个固定值,此时我们就需要用到偏函数

python中的functools模块为我们提供了许多功能,其中一个便是partial

当我们只引入偏函数时需输入:

from functools into partial

其中int()将字符型转换为整型,默认为十进制

其中int()提供了baes参数,可以调节转换进制

当我们需要大量转换2进制时,每次传入int(x,base=2)过于麻烦,此时我们会定义一个函数,传入base默认值=2

from functools import partial
def int2(x,base = 2):
   return int(x,base)
print(int2("1000"))

8

全局函数

python中的函数(全)

注意:round()四舍五入,但是要注意在python 中奇数上是标准的四舍五入,在偶数上是以5 为分界线

Original: https://blog.csdn.net/Thewei666/article/details/125739690
Author: 魏大橙
Title: python中的函数(全)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/728252/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python:界面开发,wx入门篇

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/3Yb_YAKiMte_f5HanetXiA …

    Python 2023年10月12日
    046
  • 12月编程语言排行榜公布啦~

    2022年迎来了最后一个月,我们可以看到,在这一年中编程语言起起伏伏,有的语言始终炙手可热,而有的语言却逐渐”没落”…… 日前, 全…

    Python 2023年9月5日
    058
  • Python知识点大全(非常详细)

    Python知识点大全 Python知识点汇总(一) Python知识点汇总(二) Python知识点汇总(一) 1、Python的两种编程⽅式:交互式(随输随运⾏)和⽂件式(主要…

    Python 2023年8月1日
    072
  • Pod详解

    Pod详解 Pod生命周期 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程: pod创建过程 运行初始化容器(init container)…

    Python 2023年10月13日
    046
  • python出现modify_在Python中创建modify-delete系列和dataframe,python,修改,删除,Series,与,DataFrame…

    需要导入的模块 import numpy as np import pandas as pd from pandas import Series,DataFrame 1、Serie…

    Python 2023年8月9日
    040
  • pandas 删除空值

    pandas 删除空值 目的: 将该含有过多空值的行/列删除 DataFrame.dropna(axis=0, how=’any’, thresh=None, subset=Non…

    Python 2023年8月6日
    066
  • Python风格规范(转载)

    Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 除非是在 with 语句需要三个以上的上下文管理器的情况下,否则不要使…

    Python 2023年6月12日
    060
  • 七、Data Augmentation技巧

    前文 数据生成器+数据部分展示 数据增强模型 数据增强模型的编译与拟合 GitHub下载地址: 前文 一、Windows系统下安装Tensorflow2.x(2.6) 二、深度学习…

    Python 2023年6月3日
    069
  • 【K210】K210学习笔记一——sensor

    【K210】K210学习笔记一——sensor 前言 sensor的配置 * 模块导入 模块配置 模块各配置解释 完整源码 前言 本人大四学生,电赛生涯已经走到尽头,一路上踩过不少…

    Python 2023年8月3日
    048
  • [pandas] DataFrame自定义排序

    工作中经常遇到需要根据某一个变量进行自定义排序,例如要排序长度字段 [“0-12″,”12-30″,”30-60″,”60-120″,”120-180″,”180-240”,”24…

    Python 2023年8月18日
    067
  • 全面解析若依框架(springboot-vue前后分离–后端部分)

    若依框架 1、框架分解 * – 启动配置 – 使用技术 – 功能分解 2、功能详解 * 分页实现(使用PageHelper) – 分…

    Python 2023年9月26日
    0150
  • 重磅升级!TDengine3.0 正式发布

    2022 年 8 月 13 日, TDengine 3.0 正式发布了!经过一年多的努力研发,我们终于可以骄傲地宣布这一消息。 这是一次重磅升级,TDengine 3.0 是真正的…

    Python 2023年5月24日
    0114
  • pytest框架实战项目-数据驱动+关键字驱动

    一、框架介绍 本框架主要是基于Python+pytest+allure+log+yaml+csv+Jenkins实现的接口自动化框架,本系统最大特点为:系统使用数据驱动+关键字驱动…

    Python 2023年9月10日
    041
  • 计算机大一萌新,要补充哪些计算机基本知识

    大一萌新,对计算机的基础知识、编程基础知识了解不多。一上课,一上机,就有点惶惶。 这里找到一点计算机编程的入门参考资料。 1、 计算机教育中缺失的一课 The Missing Se…

    Python 2023年11月9日
    029
  • Nginx+uWSGI+Django项目(史上最详细)

    项目设计与配置 实现功能 信息反馈页面:信息提交功能以表单形式实现,信息展示以数据列表形式呈现;每条信息包含序号、用户名、信息内容和提交日期 Admin后台系统:管理信息反馈页面的…

    Python 2023年8月5日
    042
  • Spark中配置参数的优化

    num-executors 参数说明: 参数用于设置Spark作业总共要用多少个Executor进程来执行。Driver在向YARN集群管理器申请资源时,YARN集群管理器会尽可能…

    Python 2023年6月3日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球