11函数入门

yizhihongxing

函数入门

函数的作用

  • 函数就是将一段具有独立功能的代码块整合到一个整体并命名在需要的位置调用这个名称即可完成对应的需求。
  • 作用:封装代码,实现代码重用,减少内存空间,方便代码的管理和维护

函数的使用

  • 定义函数

    def 函数名称(参数):
        代码1
        代码2
        ......
        return 返回值
    
  • 在定义函数时,如果暂时还没想法可以用pass进行跳过

  • 使用函数:函数名称(参数)

ps:1)根据不同的需求参数可有可无;2)函数必须先定义再调用

函数的参数

  • 形参:是指出现在函数定义中的名称,定义了一个函数能接受何种类型的实参。
  • 实参:则是在调用函数时实际传入的值。

参数的分类

(1)根据实参进行分类

  • 位置参数 (未命名参数)
def func(a,b,c):
    print(a)
    print(b)
    print(c)
      
func(11,22,33)
#运行结果
11
22
33
上述案列中的函数的三个形参是按位置接收传入的实参,我们把这样的传参的形式叫做位置参数,
  • 关键字参数 (命名参数)
def func(a,b,c):
    print(a)
    print(b)
    print(c)
      
func(11,c=99,b=33)
#运行结果
11
33
99
调用函数函数的时候,实参通过参数名指定传给某个形参,这样的传参形式,我们把它叫做关键字参数
注意:传参的时候先写位置参数,再写关键字参数

(2)根据形参进行分类

  • 必备参数
# 在调用函数的时候必须要传的参数
def add(a,b):
    c = a + b
    print(c)
     
add(11,22)
# 上面函数中的a,b就是必备参数,在调用的函数的时候必须要传,不然就会报错
  • 默认参数
# 调用函数的时候可以传可以不传,不传就用默认值
def func(a,b,c=99):
    print(a)
    print(b)
    print(c)
func(11,22,33)
print('-----------')
func(55,66)
# 注意:带有默认值的参数一定要位于参数列表的最后面。
  • 不定长参数 *args
    • *args:接收多传入的位置参数,以元祖的形式保存
def func(*args):
  print(args)
 
func(33,44,55,66,77)
func(*(33,44,55,66,77))
 
#运行结果
(33,44,55,66,77)
(33,44,55,66,77)

*args,args接收的是一个元祖;
调用的时候可以直接传入:func(33,44,55,66,77),
也可以可以先组装list或tuple,再通过*拆包传入:func(*(33,44,55,66,77));
  • 不定长参数**kwargs
    • **kwargs:接收多传入的关键字参数,以字典的形式保存
def func(**kwargs):
    print(kwargs)
func(e=33,h=44,f=55,d=66,c=77)
func(**{'e':33,'h':44,'d':66,'c':77})
#运行结果
{'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77}
{'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77}

**kwargs,kw接收的是一个字典;
关键字参数既可以直接传入:func(11,22,e=33,h=44,f=55,d=66,c=77),
也可以先组装dict,再通过**拆包传入:func(**{'e':33,'h':44,'d':66,'c':77})。

注意点:使用*args和**kwargs是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

函数的返回值

  • 每个函数都有以一个默认的返回值,return None,若需要返回其他值,将None修改为需要返回的值
  • return只能在函数里面使用,使用后将数据返回出去,并直接结束函数,且return不能打印数据,只能返回数据
  • 函数可以返回多个值,即return后可以跟多个参数,但函数本身返回只有一个值,其值为元组(压缩和解包)
  • 函数内可出现多个return,但只会起作用一个。若执行了return,意为这函数执行完退出了。

函数的帮助文档

  • 查看帮助文档:可以使用 help(函数名称)来查看函数的帮助文档

  • 编写帮助文档:在函数体中,输入三个双引号,回车,会自动弹出帮助文档的撰写。(若没有弹出,需要在pycharm进行设置,在File | Settings | Tools | Python Integrated Tools | Docstring format 这里改成你想要的格式,然后再回去看看三个引号。没有函数注释的情况下是plain。改成reStucturedText。

    # 自定义求和函数
    def my_sum(list_data):
        """
        对传入列表中的数据进行求和
        :param list_data: 列表
        :return: 列表数据的和
        """
        s = 0
        for i in list_data:
            s += i
    
        return s
    
    
    l1 = [1, 2, 3]
    print(my_sum(l1))   # 6
    
    # 查看帮助文档
    print(help(my_sum))
    """
    Help on function my_sum in module __main__:
    
    my_sum(list_data)
        对传入列表中的数据进行求和
        :param list_data: 列表
        :return: 列表数据的和
    
    None
    """
    

函数的嵌套调用

函数的嵌套:在函数里面还有函数。分为外函数和内函数。
嵌套函数是为函数内部服务的,比如减少代码的重复,想要调用函数,要使用函数名,内函数也一样。如果不用函数名调用内函数,内函数就永远不会执行。

# 怎么在函数外部调用内函数呢?首先,不能直接调用内函数 ,需要先执行外函数的代码块。
def func1():
    print("这是外部函数")
    def func2():
        print("这是内部函数")
func2() 
# 没有执行外函数内部的代码块,python找不到内函数,所以报name ‘func2’ is not defined,
# 函数func2()没有定义
# 有几种方式可以实现对内函数的调用。
1.在外函数内部调用内函数,即用函数名调用
def func1():
    print("这是外部函数")
    def func2():
        print("这是内部函数")
    func2() #函数名调用内函数
func1() 
2.可以用return调用内函数
def func1():
    print("这是外部函数")
    def func2():
        print("这是内部函数")
    return func2
func1()() # 执行func1()会返回func2,然后再func2()
# m = func1()
# m()


# 在一个函数里面调用别的函数
def print1():
    print("这是第一个函数")
def print2():
    print("这是定义的第二个函数")
    print1() # 在print2()中调用print1()
print2()

原文链接:https://www.cnblogs.com/daguo118/p/17314358.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:11函数入门 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • Python matplotlib读取excel数据并用for循环画多个子图subplot操作

    下面我将为您详细讲解“Pythonmatplotlib读取excel数据并用for循环画多个子图subplot操作”的完整实例教程。 1. 准备工作 在开始之前,您需要完成以下准备工作: 安装 Python 3 和 matplotlib 库; 准备一份 Excel 文件,其中包含要绘制的数据。 2. 读取 Excel 数据 首先,需要使用第三方库 panda…

    python 2023年5月13日
    00
  • Python双版本计算器详解

    以下是关于“Python双版本计算器详解”的完整攻略: 简介 Python是一种流行的编程语言,它可以用于开发各种应用程序,包括计算器。本教程将介绍如何使用Python开发一个双版本计算器,支持Python 2和Python 3。 Python 2和Python 3的差异 Python 2和Python 3有一些差异,这些差异可能会影响计算器的开发。以下是一…

    python 2023年5月14日
    00
  • Python并发爬虫常用实现方法解析

    Python并发爬虫常用实现方法解析 前言 随着互联网的发展,数据已经成为企业和个人获取商业价值的一种重要手段。其中,网络爬虫和数据挖掘技术也同样成为了网络数据获取的关键技术。而在实际应用中,爬虫的爬取效率和并发能力也成为了评价一个爬虫质量的重要指标。所以,在爬虫开发中的并发处理技术是必须掌握的。 本文主要介绍在Python中的爬虫并发处理技术,通过学习并实…

    python 2023年5月14日
    00
  • Python使用tkinter加载png、jpg等图片

    加载png、jpg等图片可以让Python的GUI界面更加活泼和美观。在Python中使用tkinter加载图片的方法有多种,下面将详细讲解其中两种常用的方法。 1. 使用PIL模块加载图片 PIL(Python Imaging Library)是Python的一个图像处理库,可以用来打开、保存、创建、修改各种格式的图片。下面演示如何使用PIL来加载图片。 …

    python 2023年5月19日
    00
  • 代码解析python标准库logging模块

    1. 简介 logging是Python标准库中提供的一个标准日志工具模块,其主要的作用是用来记录应用程序的运行时信息。通过使用logging来输出日志可以更加方便的进行开发、调试、测试以及发布运行等的工作。 2. logging模块的基础用法 2.1 创建Logger对象 创建Logger对象是logging模块的第一步,Logger对象主要用于向后端输出…

    python 2023年6月3日
    00
  • Python3合并两个有序数组代码实例

    Python3合并两个有序数组代码实例 在 Python3 中,将两个有序数组合并成一个有序数组是一个常见问题。本文将提供两种代码实现方法,以及示例说明。 方法1:使用双指针 双指针方法是将两个数组从头部开始依次比较大小,将较小的数放入一个新数组中。 实现步骤如下: 初始化两个指针 i 和 j,分别指向两个数组的第一个元素 新建一个空数组 res,用于存储合…

    python 2023年6月5日
    00
  • Python爬虫抓取技术的一些经验

    Python爬虫抓取技术的一些经验 Python爬虫是一种非常实用的Web数据采集技术,可以用于网络爬取、分析、数据挖掘、搜索引擎等多个领域。下面是一些Python爬虫抓取技术的经验。 抓取前准备工作 1.了解网站的结构、规则、数据分布情况。 2.确定数据采集的目标:需要采集哪些数据、在哪个页面等。 3.合理的编码方式和解决一些反爬虫的问题。 抓取技术要点 …

    python 2023年5月14日
    00
  • 使用Python读写及压缩和解压缩文件的示例

    当需要对文件进行读取、写入、压缩和解压缩处理时,Python提供了许多便捷的模块和方法。 读写文件 打开文件 对于文件进行读写操作之前,需要先打开文件,使用Python内置的open()函数实现。open()函数的基本语法如下: f = open(file_path, mode=’r’, encoding=None) 参数说明: file_path:待打开文…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部