python函数的基本使用
函数
其实我们在之前的学习中就已经接触过函数了,像len()、strip()、int()等等,这些我们称为内置函数。而我们接下来要学习的是自定义函数。
语法结构
def 函数名(参数1,参数2,...):
"""函数描述"""
函数体代码
return 返回值
解释:
- def:定义函数的关键字,有了def说明这个就是函数。
- 函数名:自定义函数的名称,调用函数就要写函数名的,命名规范与变量名一致
- 括号:用于传递参数,定义函数括号一定要有。
- 参数:可以给函数体使用的变量,可以有多个,也可以不写
- 冒号:定义函数要有缩进的代码块
- 函数描述:用于描述函数和参数的作用
- 函数体代码:函数的核心,用于实现功能的代码
- return:用于返回数据,后面跟上什么,调用函数时就会返回什么
简单的使用
用自定义函数实现计算字符串长度的功能
def my_len(data):
# 记录字符串个数
count = 0
# 遍历字符串
for i in data:
count += 1
# 返回字符串个数
return count
s = input("请输入需要计算的字符串:")
print(my_len(s))
函数的分类
函数分为两大类,内置函数和自定义函数。
内置函数
内置函数其实我们在学习数据类型的时候就已经用到了,它们是python解释器提前定义好可以直接使用的函数,像:len()、strip()、split()等等
自定义函数
自定义函数,听名字就知道这是我们可以自己定义的函数,自定义函数又可以分为三小类:无参函数、有参函数、空函数。
- 无参函数:定义函数时括号内没有参数
# 定义无参函数
def my_func():
print("hello world")
# 调用无参函数
my_func() # 输出:hello world
"""定义时括号内没有参数,则调用时也不能有参数"""
- 有参函数:定义函数时括号内有参数
# 定义有参函数
def my_func(a):
print(a)
# 调用有参函数
my_func("hello world") # 输出:hello world
"""定义时括号内有几个参数,调用时就要给几个参数"""
- 空函数:定义函数时函数体代码用pass或...带过
# 定义空函数
def my_func():
pass
"""
空函数主要用于快速的罗列出程序的大概功能,让整体框架清晰起来
比如我要用函数实现登录注册功能
我可以先定义用于实现注册的空函数和实现登录的空函数
写完主体代码之后再去编写函数内的具体内容
"""
函数的定义与调用
函数的定义
函数的定义已经在上一个博客中讲解过了,这里只做一个展示。
def 函数名(参数1, 参数2, ...):
"""函数描述"""
函数体代码
return 返回值
函数的调用
知道了函数如何定义,自然还要知道函数该如何调用。
调用函数其实非常简单,直接用函数名加括号就可以了,就像使用print()一样。
# 函数的定义
def my_function():
print("hello world")
# 函数的调用
my_function() # 输出:hello world
注意事项:
- 函数的定义一定要在函数的调用前面,要想定义,后调用。
# 如果先调用,后定义,像这样:
# 函数的调用
my_function()
# 函数的定义
def my_function():
print("hello world")
"""报错:NameError: name 'my_function' is not defined"""
- 函数体代码只有在调用函数的时候才会执行,所以函数体代码里如果有错误并不会第一时间提醒你。
函数的返回值
函数的返回值就是在调用函数时,函数给你的结果。
比如:
s = 'hello'
result = len(s) # 这里就是len()函数将它的返回值赋值给了result
有上述例子可以看出,我们只需要将变量名=函数调用,就可以获取函数的返回值了。
在了解了如何获取返回值后,自然要知道如何自己定义返回值。
# 当函数没有return关键字或者没有return任何数据时,返回值为None
def my_func1():
pass
def my_func2():
return
result = my_func1()
print(result) # 输出:None
result = my_func2()
print(result) # 输出:None
# 当函数内有return关键字且后面跟了数据的,那么后面跟的是什么数据返回的就是什么
# return后跟一个值,直接返回跟的返回值
def my_func1():
return 'hello'
result = my_func1()
print(result) # 输出:hello
# return后跟多个值,返回的值会合成元组后返回
def my_func2():
return 'hello', 123, [1, 2]
result = my_func2()
print(result) # 输出:('hello', 123, [1, 2])
注意事项:函数遇到return关键字会立刻退出函数,就像while和for循环里遇到了break一样