python函数

  • 一、函数的特点
  • 二、函数的基本形式
  • 三、函数参数类型
  • 四、必须参数
  • 五、默认参数
  • 六、可变参数
  • 七、可变关键字参数
  • 八、可变参数&可变关键字参数区别
  • 九、函数参数类型顺序
  • 十、变量作用域
  • 十一、作用域链
  • 十二、global关键字
  • 十三、return的用法
  • 十四、实例:斐波那契数列



一、函数的特点

  1. 功能强大
  2. 调用方便
  3. 灵活高效

二、函数的基本形式

def <函数名>(参数):
    <函数语句>
    return <返回值>

注意点:

1.def 声明一个函数

2.函数名,可自定义,为了建议不必要的麻烦,不建议与python关键字、python内置函数重名

3.函数参数不是必须的,可以不填

4.即使函数不传入任何参数,()不可省

5.默认两个空格缩进的函数语句,表示属于该函数

6.return后可以没有返回值,甚至return语句也可以省略

7.return后没有返回值,或者没有return语句的,默认返回none

python函数不带括号可以执行? python函数不带return_全局变量


python函数不带括号可以执行? python函数不带return_可变参数_02


python函数不带括号可以执行? python函数不带return_全局变量_03

三、函数参数类型

无参函数

def hello():
    print("hello,world!")

有参函数

def new_count(a,b):
    result=a+b
    return result

python函数不带括号可以执行? python函数不带return_全局变量_04

四、必须参数

必须参数

#声明一个函数的时候,定义了多少个必填参数,调用的时候就必须传入多少个实参
#实参赋值的顺序,对应必须参数定义时候的顺序
#不建议定义太多必须参数
#如果需要定义多个必须参数,建议大家,可以把多个参数封装成一个对象,把对象传入到函数中

python函数不带括号可以执行? python函数不带return_可变参数_05

五、默认参数

def func_name(param1='default1',param2='default2'):
    pass

python函数不带括号可以执行? python函数不带return_python函数不带括号可以执行?_06

六、可变参数

序列解包

#序列解包,就是将序列中的元素平铺开来,按照顺序分别赋值给多个变量
#序列:字符串、列表、元组

python函数不带括号可以执行? python函数不带return_作用域_07


python函数不带括号可以执行? python函数不带return_作用域_08

可变参数
#对于可变参数,我们可以传入任意个参数,这些参数在函数调用时自动组装成一个tuple

python函数不带括号可以执行? python函数不带return_可变参数_09


python函数不带括号可以执行? python函数不带return_作用域_10

七、可变关键字参数

可变关键字参数

#可变关键字参数,可传入任意个关键字参数,这些关键字参数的在函数调用的时候会自动组装成一个dict

python函数不带括号可以执行? python函数不带return_python函数不带括号可以执行?_11

八、可变参数&可变关键字参数区别

可变参数&可变关键字参数

可变参数
1.可传入任意个参数
2.可变参数在函数调用的时候会自动组装成一个tuple
3.如果传入的是一个序列(字符、列表、元组),可用*将每个元素平铺开来,传递到可变参数的函数里

可变关键字参数
1.可传入任意个参数
2.可变关键字参数在函数调用的时候会自动组装成一个dict,可用**将每个元素平铺开来,传递到可变关键字参数的函数里

九、函数参数类型顺序

函数中如果定义了必须参数,那么必须参数最好排在第一位 总结:
1.必须参数
2.可变参数
3.默认值参数
4.可变关键字参数

python函数不带括号可以执行? python函数不带return_可变参数_12


![


python函数不带括号可以执行? python函数不带return_作用域_13

十、变量作用域

函数作用域

1.L(local) 局部作用域
2.G(global) 全局作用域
3.E(enclosing)嵌套函数外层非全局作用域
4.B(built_in) 内嵌作用域

变量根据作用域的不同,可分为:

1.全局变量:自己编写的整个程序内

2.局部变量:自己编写的整个函数内

python函数不带括号可以执行? python函数不带return_作用域_14

变量的引用:

python函数不带括号可以执行? python函数不带return_可变参数_15

python没有块级作用域

python函数不带括号可以执行? python函数不带return_作用域_16

十一、作用域链

作用域链

1.函数内部引用变量,会优先引用最近局部变量
2.具有逐级向上引用的特性

python函数不带括号可以执行? python函数不带return_作用域_17

十二、global关键字

global

函数外部,一般情况下不可以引用局部变量

怎么才能让函数外部可以引用函数内部局部变量呢?

python函数不带括号可以执行? python函数不带return_python函数不带括号可以执行?_18

1.使用global关键字,可以声明该变量为全局变量
2.可以声明多个全局变量

疑问:可否用global关键字,给安全局变量重新赋值

python函数不带括号可以执行? python函数不带return_python函数不带括号可以执行?_19

1.使用global关键字,可以声明多个局部变量为全局变量
2.使用global关键字,可以给全局变量重新赋值

十三、return的用法

return

1.程序运行第一个return语句之后,大多数情况下,会跳出该函数,不再执行之后的代码
2.函数内可能存在多个return,一般是与if语句搭配使用
3.return 支持返回多个结果

python函数不带括号可以执行? python函数不带return_可变参数_20

python函数不带括号可以执行? python函数不带return_可变参数_21

十四、实例:斐波那契数列

斐波那契数列

1,1,2,3,5,8,13,21,34,55,89… 这个数列,从第三项开始,每一项都等于前两项的和

F(1)=1 F(2)=1 F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

python函数不带括号可以执行? python函数不带return_全局变量_22


python函数不带括号可以执行? python函数不带return_全局变量_23