Python函数的定义和调用
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号 : 起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
语法
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
函数体
(0)空函数
def login_app():
pass
- 函数体为pass代表什么都不做,称之为空函数。
- 定义空函数通常是有用的,因为在程序设计的开始,往往是先想好程序都需要完成什么功能,然后把所有功能都列举出来用pass充当函数体“占位符”,这将使得程序的体系结构立见,清晰且可读性强。
- 例如要编写一个ftp程序
- 我们可能想到的功能有用户认证,下载,上传,浏览,切换目录等功能
- 可以先做出如下定义:
def auth_user():
"""user authentication function"""
pass
def download_file():
"""download file function"""
pass
def upload_file():
"""upload file function"""
pass
def ls():
"""list contents function"""
pass
def cd():
"""change directory"""
pass
(1)无参无返回值
def common_user_pwd():
user=input('请输入用户名: ').strip()
pwd=input('请输入密码: ').strip()
(2)有参无返回值
- 参数是函数的调用者向函数体传值的媒介
- 没有return,无返回值
def test(name):
print(f"Hello, {name}!")
test("Dream") # Output: Hello, Dream!
(3)有多个参数无返回值
def add(a, b):
result = a + b
print(f"The sum of {a} and {b} is {result}")
add_numbers(6, 7) # Output: The sum of 6 and 7 is 13
(4)多个参数一个返回值
# 定义一个函数,函数有两个参数
def add_numbers(a, b):
result = a + b
print(f"The sum of {a} and {b} is {result}")
return result # 使用 return 关键字将想要返回的结果返回出去
## 调用上面设置的函数
res = add_numbers(3, 5) # Output: The sum of 3 and 5 is 8
print(res) # 8
(5)多个参数多个返回值
def rectangle_info(length, width):
area = length * width
perimeter = 2 * (length + width)
return area, perimeter
# 解压赋值
area, perimeter = rectangle_info(4, 5)
print(f"Area: {area}, Perimeter: {perimeter}")
# Area: 20, Perimeter: 18
调用函数与函数返回值
定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
如下实例调用了 printme()
函数:
# 定义函数
def printme( str ):
# 打印任何传入的字符串
print (str)
return
# 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")
以上实例输出结果:
我要调用用户自定义函数!
再次调用同一函数
函数的使用分为定义阶段与调用阶段,定义函数时只检测语法,不执行函数体代码,函数名加括号即函数调用,只有调用函数时才会执行函数体代码
#定义阶段
def foo():
print('in the foo')
bar()
def bar():
print('in the bar')
#调用阶段
foo()
执行结果:
in the foo
in the bar
定义阶段函数foo与bar均无语法错误,而在调用阶段调用foo()时,函数foo与bar都早已经存在于内存中了,所以不会有任何问题。
按照在程序出现的形式和位置,可将函数的调用形式分为三种:
#1、语句形式:
foo()
#2、表达式形式:
m=my_min(1,2) #将调用函数的返回值赋值给x
n=10*my_min(1,2) #将调用函数的返回值乘以10的结果赋值给n
#3、函数调用作为参数的形式:
# my_min(2,3)作为函数my_min的第二个参数,实现了取1,2,3中的较小者赋值给m
m=my_min(1,my_min(2,3))
若需要将函数体代码执行的结果返回给调用者,则需要用到return。return后无值或直接省略return,则默认返回None,return的返回值无类型限制,且可以将多个返回值放到一个元组内。
def test(x,y,z):
...
return x,y,z #等同于return (x,y,z)
...
res=test(1,2,3)
print(res)
## (1, 2, 3)
return是一个函数结束的标志,函数内可以有多个return,但只执行一次函数就结束了,并把return后定义的值作为本次调用的结果返回。
标签:调用,return,定义,python,print,def,函数 From: https://www.cnblogs.com/xiao01/p/17882228.html