首页 > 其他分享 >11函数入门

11函数入门

时间:2023-04-13 13:12:51浏览次数:40  
标签:11 入门 33 参数 func print def 函数

函数入门

函数的作用

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

函数的使用

  • 定义函数

    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()

标签:11,入门,33,参数,func,print,def,函数
From: https://www.cnblogs.com/daguo118/p/17314358.html

相关文章

  • 笨办法学 Python · 续 练习 11:`uniq`
    练习11:uniq原文:Exercise11:uniq译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在最后两个练习的开始,没有什么可说的了。你应该知道如何思考你的工作环境,你如何开始,你如何坐下来,影响你开始的任何事情。你也应该使用这些小小的45分钟的项目,突破了起始状态。如果你还没有弄清楚......
  • c语言贪吃蛇(2)关于蛇的函数封装
    hassnakenode():检测循环体内部是否含有蛇身结点,若有,则返回1(对应main输出蛇结点),否则判断点后移吗,再判断,之后返回0(不输出蛇结点)  addnode():创造新蛇结点,用malloc申请空间,并插入到尾结点之后。(尾插法)initsnake():创建初始头尾结点,malloc申请空间,方便后续蛇结点的添加,初始赋......
  • 力扣1127(MySQL)-用户购买平台(困难)
    题目:支出表:Spending这张表记录了用户在一个在线购物网站的支出历史,该在线购物平台同时拥有桌面端(‘desktop’)和手机端(‘mobile’)的应用程序。这张表的主键是(user_id,spend_date,platform)。平台列platform是一种ENUM,类型为(‘desktop’,‘mobile’)。问题写一段SQL......
  • 03.网络编程入门
    1、概述什么是网络编程?网络编程可以让程序与网络上的其他设备中的程序进行数据交互。网络通信的基本模式:Client-Server(CS)、Browser/Server(BS)CS模式BS模式网络通信三要素......
  • 使用反三角函数来计算两个矩形框中心点之间的夹角
    首先,求出两个矩形框中心点的横纵坐标差,再使用反三角函数(如反正切函数)求出夹角的弧度数。最后,将弧度数转换为角度数。如果点(x,y)落在第一、第二象限,则返回的角度值为负数;如果点落在第三象限,则返回的角度值为正数;如果点落在第四象限,则返回的角度值为正数或负数,具体取决于y和x......
  • 华普物联RS232/RS485串口转以太网/CAT1 DTU HP- ERSCAT-T211
    产品概述HP-ERSCAT-T211采用成熟的高性能工业处理器ARM926E],主频为300MHZ:采用宽电压DC/DC方案,提供DC9~48V超宽压电源输入并支持交流供电RS232/RS485接口,支持纯硬件定时看门狗,适合无人值守7X24小时运行的应用环境。定制化一体服务公司介绍公司简介深圳华普物联科技是......
  • 力扣1126(MySQL)-查询活跃业务(中等)
    题目:事件表:Events此表的主键是(business_id,event_type)。表中的每一行记录了某种类型的事件在某些业务中多次发生的信息。问题写一段SQL来查询所有活跃的业务。如果一个业务的某个事件类型的发生次数大于此事件类型在所有业务中的平均发生次数,并且该业务至少有两个这样......
  • 力扣1132(MySQL)-报告的记录Ⅱ(中等)
    题目:编写一段SQL来查找:在被报告为垃圾广告的帖子中,被移除的帖子的每日平均占比,四舍五入到小数点后2位。Actions表: Removals表:Result表:2019-07-04的垃圾广告移除率是50%,因为有两张帖子被报告为垃圾广告,但只有一个得到移除。2019-07-02的垃圾广告移除率是100%,因......
  • 函数防抖
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=d......
  • 虚函数
    ```#include<iostream>usingnamespacestd; classBaseClass{public:   virtualvoidfn1(){       cout<<"B1"<<endl;   }   voidfn2(){       cout<<"B2"<<endl;   }};classDerived......