iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >4 Python的函数
  • 893
分享到

4 Python的函数

python函数lambda函数的定义函数的调用参数的传递 2023-08-31 22:08:31 893人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

概述         在上一节,我们介绍了python的数据类型,包括:数字、字符串、列表、元组、集合、字典等内容。在本节中,我们将介绍Python的函数。在Python中,函数是一段可以重复使用的代码块,它可以提高代码的可重用性和可维护性

概述

        在上一节,我们介绍了python的数据类型,包括:数字、字符串、列表、元组、集合、字典等内容。在本节中,我们将介绍Python的函数。在Python中,函数是一段可以重复使用的代码块,它可以提高代码的可重用性和可维护性,是编程中非常重要的概念。

        在C/C++、Java等其他编程语言中,基本都存在函数的概念。那么,为什么要使用函数呢?因为函数具有以下优点。

        可定制性:函数可以根据需求定制,以满足不同的功能需求。

        可重用性:函数可以重复使用,避免重复编写相同的代码。

        可维护性:函数可以降低代码的复杂性,提高代码的可维护性。

函数的定义

        在Python中,可以使用def关键字定义一个函数,其格式如下:

def function_name(parameters):    """docstring"""    function_body

        其中,function_name是函数的名称,parameters是函数的参数列表,最后面是冒号,冒号后面的内容需要缩进。docstring是函数的文档字符串,用于描述函数的作用和用法。function_body是函数的主体部分,包含函数的逻辑代码。

        函数的参数放在小括号里面,参数可以有一个或多个,也可以没有,多个参数之间使用逗号进行分隔。

# 没有参数def my_print():    print('hello')# 一个参数def print_text(text):    print('hello', text)# 多个参数def print_sum(x, y):    print('sum:', x + y)

        函数可以通过return语句返回一个值。如果函数没有return语句,或者return语句没有跟任何值,则函数返回默认的None。

# 不带return,默认返回Nonedef test1():    print('hello CSDN')# return没有跟任何值,默认返回Nonedef test2():    print('hello world')    returndef Add(x, y):    return x + y

函数的调用

        定义函数后,可以通过函数名加上参数列表的方式调用函数。调用函数时,将实际参数传递给函数的参数列表。

# 统计文本中的单词数量def count_Words(text):    words = text.split()    count = len(words)    return countdef show_info(name, age):    print('name is', name, ', age is', age)# 调用上面定义好的函数count = count_words('hello CSDN')# 输出:2print(count)# 输出:name is Mike , age is 16show_info('Mike', 16)

参数的传递

        在上一节我们曾提到,数字、字符串、元组属于不可变数据类型,列表、集合、字典属于可变数据类型。

        当函数的参数为不可变数据类型时,参数的传递与c++中的值传递类似。比如:有一个函数func(a),传递的只是a的值,没有影响a对象本身。如果在func(a)内部修改a的值,则是新生成一个a的对象,修改后func外部的a不会受到影响。

def test1(a):    # 输出:66    print(a)    a = 100    # 输出:100    print(a)a = 66test1(a)# 不可变数据类型,仍然输出:66print(a)

        当函数的参数为可变数据类型时,参数的传递与C++中的引用传递类似。比如:有一个函数func(a),传递的是a的地址。如果在func(a)内部修改a的值,修改后func外部的a也会受到影响。

def test1(a):    # 输出:['C', 'S', 'D']    print(a)    a.append('N')    # 输出:['C', 'S', 'D', 'N']    print(a)a = ['C', 'S', 'D']test1(a)# 可变数据类型,输出:['C', 'S', 'D', 'N']print(a)

        函数的参数主要有五种不同的类型:必需参数、默认参数、不定长参数、强制关键字参数、强制位置参数,下面分别进行介绍。

        必需参数:调用时,必须传递的参数;如果不传递,运行时会引发TypeError异常。必须参数既可以按照位置逐一传递,也可以使用关键字指定的方式传递(此时不用与定义时的参数顺序保持一致)。

def show_info(name, age, gender):    print(f'{name}, {gender}, is {age} years old')# 输出:Mike, Male, is 25 years oldshow_info('Mike', 25, 'Male')# 输出:Tom, Female, is 32 years oldshow_info('Tom', gender='Female', age=32)# 报错:missing 1 required positional argument: 'gender'show_info('Jim', 28)

        默认参数:定义时,参数给定了默认值;调用时,可以传递该参数,也可以不传递该参数,不传递则使用默认值。

def greet(name = 'CSDN'):    print(f'Hello, {name}')  # 输出:Hello, CSDNgreet()# 输出:Hello, Worldgreet('World')

        不定长参数:在Python中,可以使用两种方式定义不定长参数。一是使用一个星号(*)作为参数前缀,将该参数定义为不定长位置参数;该参数可以接收任意数量的参数,并将它们打包成一个元组(tuple)传递给函数。二是使用两个星号(**)作为参数前缀,将该参数定义为不定长关键字参数;该参数可以接收任意数量的关键字参数,并将它们打包成一个字典(dict)传递给函数。

# 一个星号的不定长参数def func1(*args):    for arg in args:        print(arg)# 依次输出:66 88 99func1(66, 88, 99)# 依次输出:Hello CSDNfunc1('Hello', 'CSDN')# 两个星号的不定长参数def func2(text, **kwargs):    print(text)    for key, value in kwargs.items():        print(f'{key}: {value}')# 依次输出:info: name: Lily age: 16 city: BeiJingfunc2('info:', name='Lily', age=16, city='BeiJing')

        强制关键字参数:只能以关键字形式来指定的参数,从而确保调用该函数的代码读起来会比较明确。定义函数时,如果单独出现星号(*),则星号后的参数必须用关键字传入。

def my_sum(a, b, *, c):    return a + b + C# c为强制关键字参数,必须以关键字方式指定my_sum(1, 2, c = 3)# 运行时报错:my_sum() takes 2 positional arguments but 3 were givenmy_sum(1, 2, 3)

        强制位置参数:只能以位置形式,不能以关键字形式来指定的参数。定义函数时,如果单独出现斜杠(/),则斜杠前的参数必须用位置形式传入。

def my_sum(a, b, /, c):    return a + b + c# a、b为强制位置参数,必须以位置方式指定my_sum(1, 2, 3)# 运行时报错:my_sum() Got some positional-only arguments passed as keyword arguments: 'b'my_sum(1, b = 2, c = 3)

lambda函数

        lambda函数是一种没有函数名称的匿名函数或小型函数,通常用于短小的、临时性的、或者作为高阶函数的参数(比如:map()、filter()等)。

        lambda函数的语法格式为:lambda arguments : expression

        其中,arguments是一个函数参数列表,由一个或多个参数组成,多个参数之间使用逗号进行分隔。expression是一个表达式,当有多个参数时,表达式中必须使用参数对应的顺序。

        在下面的例子中,定义了一个lambda函数my_add,接收两个参数x和y,并返回它们的和,最后通过调用my_add(66, 99)来执行这个函数。

my_add = lambda x, y: x + y# 输出:165print(my_add(66, 99))

        再来看看在高阶函数filter中使用lambda函数的例子。

data = [12, 25, 7, 32, 21]# 找出列表中所有大于20的数result = filter(lambda x: x > 20, data)# 输出:[25, 32, 21]print(list(result))

        总结一下,lambda函数具有以下优点:

        语法简洁:lambda函数使用简洁的语法,可以在一行代码中定义简单的函数。

        匿名函数:lambda函数是匿名函数,不需要指定函数名称,这使得它们可以作为临时函数在代码中快速定义。

        短小函数:lambda函数通常定义的是短小的函数,这使得它们在处理简单的任务时非常方便。

        高阶函数参数:lambda函数常作为高阶函数的参数,这使得它们可以与其他函数配合使用,实现更加灵活和定制化的操作。

        提高代码可读性:在一些情况下,使用lambda函数可以使代码更加简洁、易于理解。

        提高执行效率:与普通函数相比,lambda函数的执行效率更高。

        不过需要注意的是,虽然lambda函数在某些情况下非常有用,但在处理复杂任务或需要重复使用的功能时,还是建议使用完整的函数定义。

来源地址:https://blog.csdn.net/hope_wisdom/article/details/132417650

--结束END--

本文标题: 4 Python的函数

本文链接: https://www.lsjlt.com/news/387242.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 4 Python的函数
    概述         在上一节,我们介绍了Python的数据类型,包括:数字、字符串、列表、元组、集合、字典等内容。在本节中,我们将介绍Python的函数。在Python中,函数是一段可以重复使用的代码块,它可以提高代码的可重用性和可维护性...
    99+
    2023-08-31
    python 函数 lambda 函数的定义 函数的调用 参数的传递
  • python内置函数4-execfile
    Help on built-in function execfile in module __builtin__:execfile(...)    execfile(filename[, globals[, locals]])       ...
    99+
    2023-01-31
    函数 python execfile
  • 第4课 python input()函数
    上次,我们已经总结过基本的内容,今日我们说input() 其实也 已经说过了。。。。检讨完,还是该干嘛的要干嘛,写完日志再走。刚刚好我们也遇到最少的内容。。。。写几行吧。。。服务很重要。。。。 input() 是输入字符串的,python...
    99+
    2023-01-31
    函数 python input
  • Python学习笔记4——函数
    函数 1 # 函数需要先定义,关键字 def 2 def func(): 3 print("我是一个函数") 4 5 # 函数的调用 6 func() 执行结果: 我是一个函数 内建函数(内置函数) help(), prin...
    99+
    2023-01-30
    函数 学习笔记 Python
  • Python基础——4高阶函数
    高阶函数 函数本身可用变量指向,把变量当做函数参数的函数成为高阶函数 map and reduce map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterato...
    99+
    2023-01-30
    高阶 函数 基础
  • Python函数中4种参数的使用教程
    1.必需的参数: 必须参数须以正确的顺序传入函数,调用的数量必须和声明时的一样 def f(name,age): print('I am %s,I am %d'%(...
    99+
    2024-04-02
  • Python【4】:python 数据结
    1、数字类型 2、字符串 3、列表 4、元组 5、字典 6、集合...
    99+
    2023-01-31
    数据 Python python
  • 4.累积分布函数CDF
    累积分布函数CDF 1. CDF(cumulative distribution function)2.累积分布函数(CDF)的使用3. 累积分布函数的特点4. PDF (probabilit...
    99+
    2023-09-03
    概率论 python
  • 关于Vue的 Vuex的4个辅助函数
    目录一、辅助函数二、实例1、mapState 和 mapGetters2、mapMutations和mapActions一、辅助函数 当一个组件需要获取多个状态时候,将这些状态都声明...
    99+
    2024-04-02
  • java提供的4种函数式接口
    目录1、什么是函数式接口2.java提供四种类型的函数式接口1、什么是函数式接口 函数接口是只有一个抽象方法的接口,用作 Lambda 表达式的类型。使用@FunctionalInt...
    99+
    2024-04-02
  • python 4
    while true 做成死循环。for 循环:for 比 while 要快。 range 直接生成一个序列。xrange 不直接生成序列,是用一个,再生成一个。(省内存) zip 可以在两个序列(len()相等)中。组成配对。------...
    99+
    2023-01-31
    python
  • python--matplotlib(4)
    前言  Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库,需要numpy库的支持,支持用户方便设计出二维、三维数据的图形显示,制作的图形达到出...
    99+
    2023-09-04
    python matplotlib 开发语言
  • Python--4 基本数据类型
      4.1 字符串   字符串str是在Python编写程序过程中,最常见的一种基本数据类型。字符串是许多单个子串组成的序列,其主要是用来表示文本。字符串是不可变数据类型,也就是说你要改变原字符串内的元素,只能是新建另一个字符串。   ...
    99+
    2023-01-30
    数据类型 Python
  • Python [4] Django的安装
    一、Django简介Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管 理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统...
    99+
    2023-01-31
    Python Django
  • 一文搞懂Pandas数据透视的4个函数的使用
    目录pandas.melt()pandas.pivot()pandas.pivot_table()pandas.crosstab()大家好,我是丁小杰! 今天和大家分享Pandas中...
    99+
    2024-04-02
  • javascript函数的4种调用方式与this的指向
    目录独立调用和方法调用构造函数调用间接调用严格模式下javascript 中作用域链和 this(上下文)的指向是很容易混淆的,简单的说就是: 作用域链取决于函数声明的位置,函数声明...
    99+
    2023-05-19
    javascript函数调用方式 javascript函数调用 javascript this指向 javascript this
  • 初认python-4
    文件  变量是把数据保存到内存中,如果程序重启/主机重启,内存中的数据就会丢失,要想能让数据被持久化储存,就可以把数据储存到硬盘中,也就是在文件中保存。 在ws中的目录名之间使用  \   来分割   但是使用   /   来分给也是可以...
    99+
    2023-09-22
    python 服务器 开发语言
  • python第4天
    1.while通过except实现可迭代2.2range在py3和py2的区别3.凡是带有yield的函数就一个生成器函数4.生成器函数执行的条件next5.使用生成器监听文件操作6.生成器触发需要先next再send7.如何从生成器中取值...
    99+
    2023-01-31
    python
  • oracle 正则表达式4个主要函数
    Oracle使用正则表达式4个主要函数: 1、regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单: 2、regexp_substr 函数...
    99+
    2024-04-02
  • esproc vs python 4
    esprocA1=now()2=file("C:\\Users\\Sean\\Desktop\\kaggle_data\\music_project_data\\sales.csv").import@t()3=A2.groups(year(...
    99+
    2023-01-31
    esproc python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作