python(三)

函数

函数名其实就是指向一个函数对象的引用

1. 函数关键字

1、函数名必须以下划线或者字母开头,可以包含数字字母下划线等组合,不可以包含标点符号
2、函数名称不能一样,如果一样那么后面的函数定义覆盖前面的定义
3、函数名如果一样,但是大小写不一样,是可以的,算作两个不同的函数
4、函数名能不能使用保留字,同样会将内置函数覆盖掉

2. 函数的定义

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

3. 函数的调用

  • 调用的语句需要放在定义的后面

  • 参数类型应与调用方式一致,最好在调用前检查参数的调用形式

4. 函数参数与作用域

函数参数
  • 1、位置参数
    调用函数时,传入的两个值按照位置顺序依次赋给参数
  • 2、默认参数
    位置参数定义后,调用函数是必须传入,否则会出错,默认参数可以避免这一情况,调用函数时,默认参数的值如果没有传入,则被认为是默认值。
    定义默认参数要牢记一点:默认参数必须指向不变对象
  • 3、可变参数
    • 可变参数就是传入的参数个数是可变的
    • 定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数
    • 调用:
      1、直接传参
      2、Python允许你在listtuple前面加一个*号,把list或tuple的元素变成可变参数传进去
>>> nums = [1, 2, 3]
>>> calc(*nums)
14
  • 4、关键字参数
    • 定义:在参数前面加了一个*号
      • 可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
      • 可以传入不受限制的关键字参数。如果要限制关键字参数的名字,就可以用命名关键字参数。
    • 调用:
      1、直接传参
      2、 和可变参数类似,也可以先组装出一个dict,然后,把该dict转换为关键字参数传进去:
  • 5、命名关键字参数
    • 定义: 命名关键字参数需要一个特殊分隔符*,后面的参数被视为命名关键字参数。如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符了。
    def person(name, age, *args, city, job):
     print(name, age, args, city, job)
    
    • 调用:
      命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错
  • 6、在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
变量作用域
  • 作用域:

  • 一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里定义的。定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

  • 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,有同名的内部变量和外部变量,它们将被视为两个变量,函数中局部变量优先于全局变量。

5.函数返回值

  • 函数体内部可以用return随时返回函数结果;

  • 函数执行完毕也没有return语句时,自动return None。

  • 多个返回值
    返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值