Python基础语法—— 函数的定义和使用

Posted 郭怀远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础语法—— 函数的定义和使用相关的知识,希望对你有一定的参考价值。

文章目录


函数的定义

在Python中通过 def 关键字定义函数
基本语法格式

def 函数名(形参列表):
	函数体
	return 返回值

函数的调用

函数名(实参列表) # 不考虑返回值情况
返回值 = 函数名(实参列表) # 考虑返回值情况

示例:
定义一个函数求两个数字之和

def add(num1, num2):

    return num1 + num2


print(add(1, 2))
print(add(1, 3.5))
# 运行结果
3
4.5

由于Python动态类型的特性,对于两数之和这样的操作就不需要考虑数字的类型,直接相加返回就好。
注意:函数一定要先定义再使用,也就是 deff定义函数要在使用这个函数之前

函数的返回值

Python不同于C/Java,它的函数返回值可以有多个,多个返回值的接收类似于多远赋值

def prt(x, y):

    return x, y, x+y


a, b, c = prt(1, 2)

如果想忽略一些返回值可以用 _

def prt(x, y):

    return x, y, x+y


_, _, c = prt(1, 2)
print(c)

变量的作用域

  • 在函数内部的变量, 也称为 “局部变量”
  • 不在任何函数内部的变量, 也称为 “全局变量”
x = 20


def test():
    x = 100
    return x


print(f'函数外 x = x')
print(f'test函数内 x = test()')
# 运行结果
函数外 x = 20
test函数内 x = 100

如果函数内部尝试访问的变量在局部不存在,就会尝试在全局作用域中查找

x = 20


def test():
    return x


print(f'x = test()')

如果想在函数内部修改全局变量的值,需要使用,global关键字声明

x = 20


def test():
    global x
    x = 100


test()
print(f'x = x')
# 运行结果
x = 100

注意事项
if/while/for等语句块不会影响到变量的作用域
换句话来说,在 if / while /for 中定义的变量在语句外也是可以使用的

for i in range(1, 5):
    print(f'for循环内部的i = i')

print(f'for循环外面使用i = i')
if True:
    tmp = 100

print(tmp)
# 运行结果
for循环内部的i = 1
for循环内部的i = 2
for循环内部的i = 3
for循环内部的i = 4
for循环外面使用i = 4
100

函数默认值

Python中的函数,可以给形式指定默认值
如果参数带有默认值,可以在调用的时候不传递形式参数

def add(num1, num2, debug=False):
    if debug:
        print(f'调试信息, num1 = num1, num2 = num2')
    return num1 + num2


print(add(1, 2))
print(add(40, 50, True))

**注意:**带有默认值的参数需要写到没有默认值参数的后面

关键字参数

在调用函数的时候,需要给函数指定实参,一般情况下是按照形参的顺序,来一次传递实参。

但是我们也可以通过关键字参数,来调整这里的传参顺序,显示指定单前实参传递给形式参数

def func(a, b, c):
    print(f'a = a', end=' ')
    print(f'b = b', end=' ')
    print(f'c = c')

func(c=20, a=100, b=50)
func(b=70, c=80, a=60)


# 运行结果
a = 100 b = 50 c = 20
a = 60 b = 70 c = 80

以上是关于Python基础语法—— 函数的定义和使用的主要内容,如果未能解决你的问题,请参考以下文章

Python 基础语法六 ——函数

python基础5-函数

Python语法速查: 7. 函数基础

python语法基础-函数-长期维护

Python-12:Python语法基础-函数

Python基础语法 第6节课(函数的定义函数的参数)