[Python] 函数的定义与调用

您所在的位置:网站首页 python函数的调用方法 [Python] 函数的定义与调用

[Python] 函数的定义与调用

2023-04-01 00:10| 来源: 网络整理| 查看: 265

在Python中,我们可以使用def语句创建函数,其语法格式如下所示:

def fn_name(arg1, arg2, ..., argN): statements return value

定义完函数后,可以通过调用函数名和参数来执行该函数,其语法格式如下所示:

fn_name(arg1, arg2, ..., argN)

提示Tips: 调用函数的时候,如果传入的参数数量或者参数类型不对,会报TypeError的错误,并且python会给出错误信息 

我们以自定义一个求绝对值的my_abs函数为例

def my_abs(x): if x >= 0: return x else: return -x

定义语句运行后会新建一个名为my_abs的变量名,其类型为function,即函数

# print(type(my_abs))

调用my_abs函数

my_abs(-12) # 12 my_abs(12) # 12 # TypeError: my_abs() takes 1 positional argument but 2 were given my_abs(1, 2) # TypeError: '>=' not supported between instances of 'str' and 'int' my_abs('12') # 12

函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回

提示Tips: 如果没有return语句,函数执行完毕后也会返回结果,只是结果为None

def fn1(s, n): result = s * n print(result) def fn2(s, n): result = s * n return result # 6 # None print(fn1(2, 3)) # 6 print(fn2(2, 3))

在Python中,还允许在函数中返回多个值,我们只需将返回值以逗号隔开,放在return关键字后面即可

def calculator(m, n): return m+n, m-n, m*n, m/n a = 10 b = 2 # 函数可以同时返回多个值,但其实返回值就是一个tuple元组 # (12, 8, 20, 5.0) res = calculator(a, b) r1, r2, r3, r4 = calculator(a, b) # 10和2的加减乘除运算结果分别是:12, 8, 20, 5.0 print(f'{a}和{b}的加减乘除运算结果分别是:{r1}, {r2}, {r3}, {r4}')

如果想定义一个什么事也不做的空函数,可以用pass语句

def fn(): pass

实际上 pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来 

练习案例: 计算圆形的各参数

1)输入半径,输出面积及周长 2)输入面积,输出半径及周长 3)输入周长,输出半径及面积

先引入math模块,创建三个独立函数,radius是半径,area是面积,perimeter是周长

import math def input_radius(r): area = math.pi * (r * r) perimeter = 2 * math.pi * r return area, perimeter def input_area(s): radius = math.fabs(math.sqrt(s/(math.pi))) perimeter = 2 * math.pi * radius return radius, perimeter def input_perimeter(c): radius = c/(2 * math.pi) area = math.pi * (radius * radius) return radius, area

(1) 输入半径r = 1,调用input_radius函数求出面积及周长

area, perimeter = input_radius(1) # 3.141592653589793 print(area) # 6.283185307179586 print(perimeter)

(2) 输入面积 = 3.141592653589793,调用input_area函数求出半径及周长

radius, perimeter = input_area(3.141592653589793) # 1.0 print(radius) # 6.283185307179586 print(perimeter)

(3) 输入周长 = 6.283185307179586,调用input_perimeter函数求出半径及面积

radius, area = input_perimeter(6.283185307179586) # 1.0 print(radius) # 3.141592653589793 print(area)

补充扩展知识

Python函数传参机制https://blog.csdn.net/Hudas/article/details/125853944



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3