zoukankan      html  css  js  c++  java
  • python菜鸟教程学习9:函数

    函数的定义

      函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。python提供了很多内建函数,但我们依然可以自己创建函数,叫做用户自定义函数。

    自定义函数

      你可以定义一个由自己想要功能的函数,以下是简单的规则:

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
    • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号 : 起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
    def 函数名(参数列表):
        函数体

    函数调用

      函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

    参数传递

      在 python 中,类型属于对象,变量是没有类型的,变量没有类型,她仅仅是一个对象的引用(一个指针),可以是指向 List 类型对象,也可以是指向 String 类型对象。

    可更改(mutable)与不可更改(immutable)对象

    • 在python中,不可变类型string,tuple,number是不可更改的对象对于同一个标签名字的赋值,实际上是生成一个新的值对象,再让变量指向这个对象。而可变对象list,dict等则是将元素值更改本身并没有动。
    • 对于python中的函数的参数传递,不可变类型,传递的只是一个变量的值,并内有影响对象本身,但是如果是传递可变类型那就是实现了值传递,是真正的传过去。

    参数

      必需就是啥也没有,关键字就是标识哪个对应哪个,默认就是有默认值

    • 必需参数:以正确的顺序传入函数,调用时的数量必须和声明时的一样。
    • 关键字参数:函数调用使用关键字参数来确定传入的参数值,使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为解释器能够用参数名匹配参数值。
    • 默认参数:调用函数时如果没有传递参数则会使用默认参数
    • 不定长参数:有时候函数需要能处理比声明时更多的参数,这些参数叫做不定长参数
      • 加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
    def functionname([formal_args,] *var_args_tuple ):
       "函数_文档字符串"
       function_suite
       return [expression]
      • 还有一种就是参数带两个星号 **,加了两个星号 ** 的参数会以字典的形式导入,基本语法如下:
    def functionname([formal_args,] **var_args_dict ):
       "函数_文档字符串"
       function_suite
       return [expression]
      • 声明函数时,参数中星号 * 可以单独出现,如果单独出现星号 * 后的参数必须用关键字传入。

    匿名函数

      python 使用 lambda 来创建匿名函数。所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

    • lambda 只是一个表达式,函数体比 def 简单很多。
    • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
    • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
    • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

    Return语句

      return用于退出函数,选择性的调用方法返回一个表达式,不带参数值的return返回None。

    强制位置参数

      Python3.8 新增了一个函数形参语法 / 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式。

      在以下的例子中,形参 a 和 b 必须使用指定位置参数,c 或 d 可以是位置形参或关键字形参,而 e 或 f 要求为关键字形参:

    def f(a, b, /, c, d, *, e, f):
        print(a, b, c, d, e, f)
    When you return with glory, you will be bathed in the golden rain.
  • 相关阅读:
    详解ASP.NET中获取小程序二维码图片的操作<后端>
    ASP.NET 后台上传图片
    使用Js在前台画二维码
    在网页上点击图片打开一个新页面显示大图
    C# 使用RabbitMQ消息队列
    Git如何拉取指定远程分支
    win10专业版激活方法
    基于.Net Core3.1 MVC + EF Core的项目(一)框架的初步搭建
    session未过期就丢失的原因以及处理方式
    DES加密和base64加密
  • 原文地址:https://www.cnblogs.com/DrunkYouth/p/14044757.html
Copyright © 2011-2022 走看看