Python 函数--详细整理

python基础知识之函数的定义及用法 本文主要介绍python函数的定义和调用、函数的参数、函数的作用域、内置函数。对特定的一些功能进行封装,提高代码的重用率,进而提升开发的效率,格式:nginxdef 函数名()# 函数体必需参数  如:def add_num(a, b, c) ,a,b,c三个参数都必须要传默认参数(缺省参数) 如:def add_num(a, b, c=99) ,c是默认参数,可以传,可以不传(不传时直接使用c=99) 阅读详情

Python 函数

Python 是一种强大的编程语言,函数是 Python 编程中的基本构建块之一,它可以帮助我们将代码模块化,提高代码的可重用性和可维护性。

1 函数定义

Python 中的函数可以使用 def 关键字定义,定义语法如下:

def 函数名(参数列表):
    函数体

def function_name(arguments):
    """docstring"""
    # function body
    return [expression]

函数定义语法由以下组成:

  1. def: Python 中定义函数的关键字。
  2. function_name: 函数名称,由字母、数字和下划线组成,不能以数字开头。
  3. arguments: 参数列表,由逗号分隔的形式参数和关键字参数组成。
  4. docstring: 函数文档字符串,用于描述函数的功能和使用方法。
  5. function body: 函数体,包含了执行函数需要执行的语句。
  6. return: 函数结果返回关键字,返回值可以为表达式或者省略。

以下是一个简单的函数定义示例:

def greet(name):
    """向名字问好"""
    print(f"Hello, {name}!")

这个函数名称为 greet,参数为 name,函数文档字符串描述了函数的功能,函数体打印了传入名称的问候语。

2 函数调用

定义函数后,我们就可以通过函数名调用函数,将需要输入的数据传递给函数,让函数执行并返回结果,调用语法如下:

function_name(arguments)

以下是一个简单的函数调用示例:

greet('Alice')

这个函数调用传入参数 Alice,函数体内部打印了 Hello, Alice!。

3 函数参数

Python 中的函数可以接受两种类型的参数:位置参数和关键字参数。

3.1 位置参数

位置参数是函数定义的参数,按顺序传递给函数,调用时必须提供与函数定义的位置参数相同数量的参数。例如:

def greet(name, age):
    """向给定的名字和年龄发问候"""
    print(f"Hello, {name}. You are {age} years old.")

greet('Alice', 20)

这个函数定义了两个位置参数,调用时必须按照顺序传入相同数量的参数,函数体内部打印了 Hello, Alice. You are 20 years old.。

3.2 关键字参数

关键字参数是通过名称指定的参数,调用时不必按顺序传递。关键字参数必须指定参数名和值。例如:

def greet(name, age):
    """向给定的名字和年龄发问候"""
    print(f"Hello, {name}. You are {age} years old.")

greet(age=20, name='Alice')

在函数调用时,指定参数名称和值,函数体内部仍然可以按照参数位置进一步操作。

3.3 默认参数

如果函数定义中指定了缺省值,调用函数时可以省略该参数,使用定义时的缺省值。例如:

def greet(name, age=18):
    """向给定的名字和年龄发问候"""
    print(f"Hello, {name}. You are {age} years old.")

greet('Alice')

在函数定义时,指定了 age 参数具有默认值 18,在函数调用时可以不传递 age 参数,函数体内部打印了 Hello, Alice. You are 18 years old.。

3.4 可变参数

如果想要传入可变数量的位置参数,请在参数名前面加上 * 号,可以接受一个任意数量的参数,这些参数将作为元组传递给函数体。例如:

def greet(name, *args):
    """向给定的名字和年龄发问候"""
    print(f"Hello, {name}. You have {len(args)} arguments: {args}")

greet('Alice', 'Bob', 'Charlie', 'David')

# 输出 Hello, Alice. You have 3 arguments: ('Bob', 'Charlie', 'David')

在这个函数内部,使用 *args 来指定参数数量可变,所有的额外参数将作为元组传递给函数体,函数体。

如果想要传入可变数量的关键字参数,请在参数名前面加上 ** 号,可以接受一个任意数量的关键字参数,这些参数将作为字典传递给函数体。例如:

def greet(name, **kwargs):
    """向给定的名字和年龄发问候"""
    print(f"Hello, {name}. You have {len(kwargs)} arguments: {kwargs}")

greet('Alice', Bob=20, Charlie=23, David=18)

在这个函数内部,使用 **kwargs 来指定参数数量可变,所有的额外参数将作为字典传递给函数体,函数体输出 Hello, Alice. You have 3 arguments: {'Bob': 20, 'Charlie': 23, 'David': 18}。

  • 加了 * 的参数会以元组的形式导入

  • 加了** 的参数会以字典的形式导入

  • / 之前的参数只能通过位置传递

  • * 之后的参数只能通过关键字传递,参数中星号 * 可以单独出现

下面是一个例子:

def func(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

func(1, 2, 3, 4, e=5, f=6)

这个函数可以接受 6 个参数,其中 / 前面的两个参数 a 和 b 只能通过位置传递,不能通过关键字传递; / 后面的两个参数 c 和 d 既可以通过位置传递,也可以通过关键字传递;* 后面的两个参数 e 和 f 只能通过关键字传递,不能通过位置传递。 因此,下面的调用都是合法的:

func(1, 2, 3, 4, e=5, f=6)
func(1, 2, c=3, d=4, e=5, f=6)
func(1, 2, 3, d=4, e=5, f=6)

而下面的调用将会抛出异常:

func(a=1, b=2, c=3, d=4, e=5, f=6)  # 不能通过关键字传递 a 和 b
func(1, 2, c=3, d=4, 5, 6)  # 不能通过位置传递 e 和 f

4 函数作用域

Python 中的函数有自己的作用域,定义在函数之内的变量称为局部变量,只能在函数内部使用,无法在函数外部访问。 而在函数之外定义的变量称为全局变量,可以被整个程序访问。

函数作用域的规则可以总结为以下几点:

  1. 函数内部可以访问全局变量。
  2. 函数内部定义的变量是局部变量,只能在函数内使用。
  3. 函数内部可以修改全局变量,但需要在函数内部指定 global 关键字。

以下是一个修改全局变量的例子:

x = 0

def increment():
    global x
    x += 1

increment()
print(x)

在这个例子中,函数体内使用 global 关键字来指定 x 是全局变量,函数体内部将全局变量 x 的值增加了 1,最终输出 1。

5 函数返回值

Python 中的函数可以返回单个值或者多个值。如果返回多个值,Python 会将返回值封装为元组。

以下是一个返回单个值的函数示例:

def add_numbers(x, y):
    """将两个数字相加并返回结果"""
    return x + y

result = add_numbers(3, 4)
print(result)

这个函数接受两个数字作为输入,将它们相加并返回结果。函数调用返回结果并将其赋值给变量 result,最终输出 7。

以下是一个返回多个值的函数示例:

def get_name_stats(name):
    """返回给定名字的长度和第一个字母"""
    length = len(name)
    first_letter = name[0]
    return length, first_letter

name_length, name_first_letter = get_name_stats('Alice')
print(name_length)
print(name_first_letter)

这个函数接受一个名字作为输入,返回该名字的长度和第一个字母。函数调用同时返回两个值并将其赋值给 name_length 和 name_first_letter,最终输出先输出 5,然后输出 A。

6 Lambda 函数

Lambda 函数是一种匿名函数,它可以在一行代码中定义一个简单的函数,通常用于规模较小的函数体。Lambda 函数由 lambda 关键字引入,接受任意数量的参数(但是只能有一个表达式),并返回表达式的值。以下是一个简单的 Lambda 函数示例:

f = lambda x: x ** 2
print(f(4))

这个 Lambda 函数接受一个参数 x,返回 x 的平方,并将其赋值给变量 f,最终输出 16。

Lambda 函数通常用于需要传递一个简单的函数体作为另一个函数的参数,例如 map() 或 filter() 函数。.

匿名函数:lambda [arg1 [,arg2,.....argn]]:expression

---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上时代呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

Python——— 函数大全 Python函数详解 阅读详情

相关推荐

python内置函数有哪些?整理到了7大分类48个函数,都是工作中常用的函数

python内置函数

雨滴测试博客 4880

python函数的定义及使用

python函数的定义及使用

m0_62064241的博客 1万+

Auto.js凉了之后,我们该用啥?AutoX.js保姆级环境搭建与第一个脚本实战(2024最新)

本文详细介绍了AutoX.js作为Auto.js替代方案的环境搭建与脚本开发实战指南。从技术生态现状分析到2024最新环境配置,再到编写第一个实用脚本和进阶调试技巧,帮助开发者无缝迁移至AutoX.js平台。特别适合需要手机自动化的JavaScript开发者,涵盖从基础到企业级应用的全套解决方案。

weixin_28737073的博客 392

python定义函数

本文详细介绍了python中函数的定义以及无参函数、有参函数、传参方式、缺省参数、可变参数*args、关键参数**kwargs、return语句、函数注释、递归函数、回调函数、闭包函数、多态函数的使用方式。

爆笑蛙的博客 8481

从零开始 使用OMNET++结合VEINS,INET和SUMO的联合仿真

搭建仿真的环境,导入VEINS和INET开源库,使用INET库中提供的网络协议和功能模型来模拟通信协议和网络功能,使用SUMO创建道路网络和车辆轨迹,并导出到OMNeT++中 在OMNeT++中使用VEINS通过socket和SUMO连接,借助VEINS实现的TRACI接口来设置车辆相关的行为和场景,最后在OMNET++中结合VEINS,SUMO和INET运行联合仿真实验,并分析车辆在遇到紧急情况下的通信状况和具体行为

mjmmm的博客 1万+

1006. 换个格式输出整数 (15)-PAT乙级真题

1006. 换个格式输出整数 (15)让我们用字母B来表示“百”、字母S表示“十”,用“12…n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出n。输入样例1...

柳婼 の blog 2244

Python语言零基础入门——函数

本文介绍了函数的定义、调用,函数的参数、参数类型,全局变量、局部变量,匿名函数、内置函数、递归函数和一个练习题(名片管理系统)

qq_52911954的博客 1万+

EL6751实战指南:从协议解析到工业现场部署

本文详细介绍了EL6751网关在工业通信协议转换中的应用,从CANopen协议解析到EtherCAT系统部署的实战指南。通过协议栈位置、数据封装方式和通信模型差异的深入分析,帮助工程师高效实现EtherCAT主站与CANopen从站设备间的无缝对接,提升工业现场通信效率。

weixin_30338481的博客 549

Python常用函数整理

Python常用函数整理 最近整理了一些常用函数,如有遗漏和出错多多指正。

weixin_45345465的博客 406

深入Netflix影片分类数据抓取的Python爬虫实战:反反爬机制绕过与Playwright应用全解析

技术工具用途Playwright控制真实浏览器模拟用户行为开发语言asyncio异步调度浏览器任务pandas数据处理和导出sqlite3本地数据库存储支持随机UA模拟,增强反爬能力为什么选择 Playwright?✅ 支持多浏览器(Chromium、Firefox、WebKit)✅ 原生支持 Python 异步编程✅ 提供截图、滚动模拟、验证码处理等高级功能✅ 反爬能力强,模拟真实用户访问。

2201_76125261的博客 1241

腾讯开源SuperSonic:AI+BI如何重塑数据分析?

SuperSonic是腾讯开源的AI+BI平台,融合Chat BI与Headless BI,为制造企业提供实时数据分析。它通过自然语言交互打破数据壁垒,实现生产、库存、质量、供应链等多环节优化,提升决策效率,其开源生态与扩展性助力企业数字化转型与数据价值挖掘。

数据与算法架构提升之路专栏 4551

整理了100个必备的 Python 函数,值得收藏

新手在做写代码的时候容易卡壳,尤其当接触的函数以及其他知识比较多的时候,经常会看完需求之后不知道自己该用什么方法来实现它,实现的逻辑可能你有,但怎么该用什么函数给忘了,这其实就是知识的储备不够,你记不住哪个函数有什么作用,自然一头雾水。 这几天我专门整理了Python常用的一些函数,从最基础的输入输出函数到正则等12个板块的,总共100多个常用函数,方便小伙伴们进行快速地记忆,每天快速过一遍,用的时候再加深一下,慢慢地你就会摆脱写代码卡壳的状况。 虽说自学编程的时候我们强调更多的东西是理解和实际去敲代码,但

Python学习与数据挖掘 1万+

2025届程序技术类笔试题

希尔排序在直接插入排序的基础上进行了改进,它通过比较相距一定间隔的元素来进行,各轮比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一轮排序为止。某人逆着水流的方向向岸边划船,每次行进前进x米后需要休息一下,休息期间船会自行倒退y米,每次休息后再次行进,前进距离缩短1/5,若起始距离岸边为m米,问:能否到达岸上,需要行进多少次才能上岸。直接插入排序的原理是将第i个元素插入前面i-1个已排好序的记录中,将比第i个元素大的记录依次向后移动一个位置,将第i个元素插入空位。第二轮相邻比较,后移2次。

博客 599

python函数整理

==Math函数== 函数 作用 函数 作用 isnumeric 判断字符是否是数字 random 随机数 round 四舍五入(第二个参数按位精确) abs 绝对值 sqrt 开方 max 最大值 min 最小值 floor 向下取整 ceil 向上取整 pow 乘方 ...

宅神的博客 395

Qt项目开发实例 (含源码)

qt教程、qt项目、qt下载、qt项目实战、qt多线程。本文通过分析demo源码,QT实战的方式进行学习,学习路线是以实战为目录,全面的使用自己的学习知识,文章中编写一系列的学习游戏demo,与大家一起分享。

啊渊的专栏 14万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

整理了 100 个必备的 Python 函数

整理了 100 个必备的 Python 函数

隔壁王叔的博客 764

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【内置函数】84个Python内置函数全整理

参考:【内置函数】84个Python内置函数全整理_python函数-优快云博客

m0_37989702的博客 248

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python常用函数-Python 学习:常用函数整理

整理Python中常用的函数一,把字符串形式的list转换为list使用ast模块中的literal_eval函数来实现,把字符串形式的list转换为Python的基础类型listfrom ast importliteral_evalstr_list= "[1838, 13735, 8285, 35386]"mylist=literal_eval(str_list)type(m...

weixin_37988176的博客 211

python内置函数整理

最近在看python文档的过程中,发现还有好多有用的内置函数自己竟然不熟悉。于是在此做出如下整理。 bin/hex/oct,bin转换为二进制0b,hex转换为16进制0x,oct转换为八进制0o。 >>> bin(3) '0b11' >>> bin(-10) '-0b1010' >>> format(14, '#b'), format(14...

weixin_43128028的博客 261

python函数进阶主要的知识整理

qq_27698495的博客 155

整理了100个必备的Python函数,建议收藏

新手在做写代码的时候容易卡壳,尤其当接触的函数以及其他知识比较多的时候,经常会看完需求之后不知道自己该用什么方法来实现它,实现的逻辑可能你有,但怎么该用什么函数给忘了,这其实就是知识的储备不够,你记不住哪个函数有什么作用,自然一头雾水。

Python栈 1423

python内建函数和工厂函数的整理

内建函数参阅: https://www.cnblogs.com/pyyu/p/6702896.html 工厂函数: 本篇博文比较粗糙,后续会深入整理 转载于:https://www.cnblogs.com/qiang-upc/p/11155786.html

weixin_30653023的博客 83

python常用函数整理

一,把字符串形式的list转换为list 使用ast模块中的literal_eval函数来实现,把字符串形式的list转换为Python的基础类型list from ast import literal_eval str_list = "[1838, 13735, 8285, 35386]" mylist = literal_eval(str_list) type(mylist ) 二,filter filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。 该接收两

python学习者的博客 7130

Python中很常用的100个函数整理

Python 内置函数提供了强大的工具,涵盖数据处理、数学运算、迭代控制、类型转换等。本文总结了 100 个常用内置函数,并配备示例代码,提高编程效率。

weixin_62375676的博客 8022

整理了12个必备的Python函数,建议收藏

新手在做写代码的时候容易卡壳,尤其当接触的函数以及其他知识比较多的时候,经常会看完需求之后不知道自己该用什么方法来实现它,实现的逻辑可能你有,但怎么该用什么函数给忘了,这其实就是知识的储备不够,你记不住哪个函数有什么作用,自然一头雾水。这几天我专门整理了Python常用的一些函数,从最基础的输入输出函数到正则等12个板块的,总共100多个常用函数,方便小伙伴们进行快速地记忆,每天快速过一遍,用的时候再加深一下,慢慢地你就会摆脱写代码卡壳的状况。

2401_86168842的博客 479
上一篇: Python 数据类型--详细整理
下一篇: python-Flask框架进阶
Python_P叔
博客等级 码龄3年 5454粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值