🗡️

函数

一、函数的基本使用

1. 函数的定义

什么是函数:

  • 函数是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集

函数的作用,为什么要用函数:

  • 使用函数可以加强代码的复用性,提高程序编写的效率
  • 防止代码冗余,提高代码可读性

函数的使用:

  • 函数必须先创建才可以使用,该过程称为函数定义,函数创建后可以使用,使用过程称为函数调用

函数只有调用才会被执行,例如下面的程序

def hello():                    ##定义hello函数
    print('hello1')                 ##函数内容
    print('hello2')
    print('hello3')

hello()                         ##调用函数
hello1` `hello2` `hello3

有参函数,无参函数,空函数

#有参函数:
def func(test):
    print(123)

#无参函数:
def func():
	print(123)

#空函数:
def func():
    pass

2、返回值

  1. 不写return:默认返回None
  2. 只写return:只有结束函数体代码的效果,返回None
  3. return返回一个值:可以将返回的结果,当作一个变量值来使用
  4. return返回多个值:
    1. 将返回的多个值,默认存入元组返回
    2. 函数的返回值不想被修改
    3. 可以自己指定返回的数据类型

返回值:函数运行的结果,还需要进一步操作时,给一个返回值 return用来返回函数执行结果,如果没有返回值,默认为None

python可以间接返回多个值(返回了一个元组),一旦遇到return,函数执行结束,后面的代码不会执行

形参实参

定义函数的时候的变量,叫形参(可以任意起名)

函数调用阶段传入的参数是实参

def welcome(a):                        ##这里的a是形参
    print('hello',a)
welcome('luck')                        ##这里的luck是实参

3.函数的四大形参(传参方式)

参数可以分为实参和行参,而行参又可以分为四类,位置参数、默认参数、可变参数和关键字参数。

1.位置参数

行参和实参的个数必须保持一致,最好按位置传参

def info(name,age):
    print(name,age)

Info('leiting',20)                        ##按照位置的写法
Info(age=20,name='letin')               ##如果不按照位置的话,就是要这样

2.默认参数

设置默认参数时注意事项:必选参数在前,默认参数在后

在定义函数阶段就已经传入参数

如果说你在实参的时候传入了一个新的参数,就会使用新参数默认参数在传值的时候

不要将可变类型当做参数传递

应用场景:

  • 一般来说,将参数值变化小的设置为默认参数。
  • 参数对应值重复出现的情况下使用默认参数
def pow(x,y=2):
    print(x ** y)

pow(4,3)                                ##此时就将y的值改成了3

3.可变参数(接收所有溢出的位置参数)

匹配完定义好的参数,剩余的参数以元组的形式存储在 *args(*args 名称你可以自行定义)

def hello(*args):
    pass

*wargs (可变参数) 和 **kwargs (关键字参数)

def hello(**kwargs):
    pass

4.关键字参数( Keyword Arguments)(接收所有溢出的关键字参数)

声明只能在默认参数之前,最好老老实实呆在对应的位置

def pow(x,y=2):
    return x ** y,x +y

*的用法

放到实参中就是打散

在函数的定义时,位置参数,关键字参数-–-–>聚合。
在函数的调用(执行)时,
位置参数,
**关键字参数-–-–>打散

4.变量的作用域

一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量

全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量

那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢?

global: Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global(声明之后为全局变量)。

 posted on 2019-11-09 16:54  Rannie`  阅读(783)  评论(0编辑  收藏  举报
去除动画
找回动画