Python基础之函数基本用法与进阶详解

  • Post category:Python

Python基础之函数基本用法与进阶详解

函数是一段可重复使用的代码,可使程序代码更加模块化,可读性更好,代码结构更加清晰。Python中也有丰富的函数库,学习函数的基本用法是入门Python编程的重要一步。本篇攻略将从以下几方面详细讲解Python函数的基本用法与进阶技巧:

  1. 函数的定义和调用;
  2. 函数返回值;
  3. 函数的参数;
  4. 匿名函数;
  5. 内置函数及其使用;
  6. 函数的进阶应用案例。

一、函数的定义和调用

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中定义函数时,可以为函数指定任意数量的参数,包括必需参数、默认参数和关键字参数。

  1. 必需参数

必需参数是指在调用函数时必须传递的参数。以下是一个接受两个必须参数的函数。

def add(x, y):
    return x + y

print(add(2, 3))

这个函数接受一个x和一个y参数,并返回它们的和。必须传递这两个参数,否则将会抛出TypeError错误。

  1. 默认参数

默认参数是指定义函数时为参数指定的默认值。如果在调用函数时没有传递参数,则使用默认值。以下是一个使用默认参数的例子。

def pow(x, n=2):
    return x**n

print(pow(2))
print(pow(2, 4))

这个函数接受一个x参数和一个可选参数n,默认值为2。第一个例子中没有传递n参数,因此默认为2。在第二个例子中传递了一个n参数,将其设置为4。

  1. 关键字参数

关键字参数是使用关键字进行传递的参数。这些参数可以直接指定函数定义中定义的参数名称,有助于提高代码可读性。以下是一个使用关键字参数的例子。

def greet(name, message):
    print("Hello, " + name + "! " + message)

greet(name="Alice", message="How are you?")

这个函数接受两个必需参数:namemessage。使用关键字参数,它们可以在函数调用时任意排列。

四、匿名函数

在某些情况下,我们需要使用一些简短的函数来完成某些功能,并且不希望定义整个函数。Python中的匿名函数可以在这种情况下发挥作用。在Python中,可以使用lambda关键字来定义匿名函数。

以下是一个计算两个数之和的例子,使用了lambda函数:

sum = lambda x, y: x + y
print(sum(2, 3))

这个匿名函数接受两个参数,使用lambda语法在一行代码中计算它们的和。可以将这个匿名函数分配给一个变量sum,并使用该变量调用它。

五、内置函数及其使用

Python的标准库中有大量的内置函数可以使用。这些内置函数不需要进行定义,Python解释器可以直接使用它们。以下是几个常用内置函数的示例。

  1. abs: 计算输入值的绝对值。

python
print(abs(-5))

输出结果是5。在这个例子中,输入值是-5abs函数返回这个值的绝对值。

  1. maxmin: 计算输入序列中的最大值和最小值。

python
print(max(1, 2, 3))
print(min([4, 3, 2]))

两个函数参数可以是多个数字或一个可迭代的对象。在这个例子中,max函数返回输入值1, 2, 3中的最大值3,而min函数返回输入值[4, 3, 2]中的最小值2

  1. 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代码。