Python基础之函数基本用法与进阶详解
函数是一段可重复使用的代码,可使程序代码更加模块化,可读性更好,代码结构更加清晰。Python中也有丰富的函数库,学习函数的基本用法是入门Python编程的重要一步。本篇攻略将从以下几方面详细讲解Python函数的基本用法与进阶技巧:
- 函数的定义和调用;
- 函数返回值;
- 函数的参数;
- 匿名函数;
- 内置函数及其使用;
- 函数的进阶应用案例。
一、函数的定义和调用
Python中定义函数使用def
关键字,语法如下:
def function_name(arguments):
# function_body
return output
function_name
:函数名称,可包含字母、数字、下划线,但不能以数字开头arguments
:函数的参数列表,可选function_body
:函数体,包含具体实现的代码output
:函数的输出值,可选
下面是一个例子,以函数输出用户输入字符串长度为例:
def length(string):
return len(string)
user_input = input("Please input a string: ")
print(length(user_input))
这个例子首先定义了一个名为length
的函数,其中使用len
函数计算输入字符串的长度并返回结果。运行时需要等待用户输入任意字符串,在输出这个字符串的长度。
二、函数返回值
在上面的例子中,length
函数有一个明确的返回值,并且将结果存储在一个变量中,在之后的代码中使用。但事实上,Python函数不一定需要返回值。
如果函数没有显示使用return
语句,它将默认返回None
。以下是一个没有返回语句的函数,该函数是通过将用户输入字符串的长度打印在终端上来输出结果。
def length(string):
print(len(string))
user_input = input("Please input a string: ")
length(user_input)
三、函数的参数
函数中的参数用于将值或变量传递到函数中。Python中定义函数时,可以为函数指定任意数量的参数,包括必需参数、默认参数和关键字参数。
- 必需参数
必需参数是指在调用函数时必须传递的参数。以下是一个接受两个必须参数的函数。
def add(x, y):
return x + y
print(add(2, 3))
这个函数接受一个x
和一个y
参数,并返回它们的和。必须传递这两个参数,否则将会抛出TypeError
错误。
- 默认参数
默认参数是指定义函数时为参数指定的默认值。如果在调用函数时没有传递参数,则使用默认值。以下是一个使用默认参数的例子。
def pow(x, n=2):
return x**n
print(pow(2))
print(pow(2, 4))
这个函数接受一个x
参数和一个可选参数n
,默认值为2。第一个例子中没有传递n
参数,因此默认为2。在第二个例子中传递了一个n
参数,将其设置为4。
- 关键字参数
关键字参数是使用关键字进行传递的参数。这些参数可以直接指定函数定义中定义的参数名称,有助于提高代码可读性。以下是一个使用关键字参数的例子。
def greet(name, message):
print("Hello, " + name + "! " + message)
greet(name="Alice", message="How are you?")
这个函数接受两个必需参数:name
和message
。使用关键字参数,它们可以在函数调用时任意排列。
四、匿名函数
在某些情况下,我们需要使用一些简短的函数来完成某些功能,并且不希望定义整个函数。Python中的匿名函数可以在这种情况下发挥作用。在Python中,可以使用lambda
关键字来定义匿名函数。
以下是一个计算两个数之和的例子,使用了lambda
函数:
sum = lambda x, y: x + y
print(sum(2, 3))
这个匿名函数接受两个参数,使用lambda
语法在一行代码中计算它们的和。可以将这个匿名函数分配给一个变量sum
,并使用该变量调用它。
五、内置函数及其使用
Python的标准库中有大量的内置函数可以使用。这些内置函数不需要进行定义,Python解释器可以直接使用它们。以下是几个常用内置函数的示例。
abs
: 计算输入值的绝对值。
python
print(abs(-5))
输出结果是5
。在这个例子中,输入值是-5
,abs
函数返回这个值的绝对值。
max
和min
: 计算输入序列中的最大值和最小值。
python
print(max(1, 2, 3))
print(min([4, 3, 2]))
两个函数参数可以是多个数字或一个可迭代的对象。在这个例子中,max
函数返回输入值1, 2, 3
中的最大值3
,而min
函数返回输入值[4, 3, 2]
中的最小值2
。
sorted
: 对输入对象进行排序。
python
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(sorted(lst))
输出结果是[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
。这个函数可以对任何可迭代的对象进行排序。
六、函数的进阶应用案例
下面是一个简单的应用函数的例子,获取输入列表中的元素,并计算它们的均值以及标准差。这个函数使用了前面介绍过的Python基本函数、参数、返回值、内置函数等基础知识。
import math
def calculate(lst):
n = len(lst)
m = sum(lst) / n
s = math.sqrt(sum((x - m)**2 for x in lst) / (n - 1))
return m, s
user_input = input("Please input a list of numbers separated by space: ")
lst = [float(x) for x in user_input.split()]
avg, std = calculate(lst)
print("Average: ", avg)
print("Standard deviation: ", std)
在这个例子中,我们首先定义了一个名为calculate
的函数,它接受一个列表作为输入参数。我们在函数中计算列表的长度n
,平均值m
和标准差s
,并通过元组返回这些值。我们使用内置math
函数库来计算标准差。
在主函数中,我们首先让用户输入一个由空格隔开的数字列表,使用split()
函数分割输入字符串,并将返回值转换为浮点数类型的数字列表lst
。我们在调用calculate
函数计算lst
的平均值和标准差,最后输出这两个值。
这个例子使用了很多我们在本篇攻略中介绍的Python函数基本用法和进阶技巧,运用这些技巧可以轻松编写出高效、可读性强的Python代码。