函数是什么?在编程中,函数是一段可重用的代码块,用于完成特定任务或执行特定操作。它可以接输入参数并返回一个值或执行一系列操作。函数可以帮助程序员将代码模块化,提高代码的可读性和可维护性。
函数通常包括以下组成部分:
- 函数名:用于标识函数,并可以通过函数名调用执行该函数。
- 参数:输入给函数的值,在函数内部可以使用参数进行操作或计算。
- 函数体:包含函数执行的代码块。在函数体中可以进行各种操作、计算、逻辑判断等任务。
- 返回值:函数可以返回处理结果,供调用者使用。
每种编程语言对于函数的语法规范可能所有不同,但是都是包含函数组成部分的。
Python函数组成
Python函数的定义通包括以下几个部分:
- 函数头部:使用关键字
def
开始,后跟函数名和一对圆括号( )
。圆括号内可以包含函数的参数,多个参数之间用逗号分隔,最后在右括号)
之后要加个冒号:
,无论是括号还是冒号一定都要是英文状态下的。 - 函数体:函数体是由函数的操作逻辑组成的代码块,函数体内的代码需要缩进,通常使用4个空格或制表符(Tab键)进行缩进。
- 函数返回值:函数可以返回一个值使用关键字
return
后跟要返回的值。
以下是一个简单的示例,展示了一个算两个数之和的函数:
def add_numbers(num1, num2):
sum = num1 + num2
return sum
result = add_numbers(5, 3)
print(result) # 输出:8
在这个示例中,函数 add_numbers
接收两个参数 num1
和 num2
,计算它们的和并返回结果。通过调用 add_numbers(5, 3)
可以得到结果 8将结果赋值给变 result
,最后打印 result
的值。
Python函数解释
上述的add_numbers是个非常简单的函数,但是初学者朋友如果不注意相关规则的话,可能会造成怀疑人生的结果。
正如Python函数的语法组成那样,Python是用def开头来定义一个函数的,然后空格后跟上函数名add_numbers
,我们专业一点的叫法的话,叫函数定义,在使用一个函数之前,必须先定义,否则就会报语法错误。
比如我们像下面这样书写,就不行的,会一个NameError的错误。NameError: name 'add_numbers' is not defined
。
result = add_numbers(5, 3)
def add_numbers(num1, num2):
sum = num1 + num2
return sum
print(result)
接着加上括号,括号里面跟上参数名,这里的参数名我们称之为形式参数,简称形参,这个在编程当中是一个比较重要的概念,特别是在C语言当中。然后右括号后面加上一个冒号,后面就另起一行写函数体,当然在一些非常简单的函数体当中,可能直接跟在冒号后面,比如:
if a == 1: return 1
在leetcode编程中,这种写法也经常见到。
如果是超过一行的,一般都是另起一行写函数体。函数体内的代码需要缩进,通常使用4个空格或制表符进行缩进。这里要特别注意,在函数体中, 要不都用4个空格,要不就用制表符,千万不要混用 ,一个制表符又刚好等于4个空格,所以从表面上看确实是对齐了,对于没有编程经验的初学者来说,一旦混用,又不懂得利用搜索引擎的话,可能一个晚上你都会困在那里,百思不得其解。
混用的话,一般会报以下错误:
IndentationError: unindent does not match any outer indentation level
意思大概就是说你缩进不匹配,大概率就是制表符和空格混用了!但是如果你是用PyCharm等一些高级的IDE,可能这些IDE会自动帮你修正这些对齐的bug,而如果你是从其他编辑器复制代码到PyCharm中的,这些没有对齐的错误并不会自动的修正,还是需要你手动就纠正的,所以还是推荐大家尽量使用PyCharm编写Python代码。
Python函数类型
Python当中有各种类型的函数,像上面那种就是比较普通的自定义函数,顾名思义,就是自己定义的函数。在 Python 中,还有以下几种常见的函数类型。
内置函数
Python 提供了一些内置函数,可以直接使用,不需要导入任何模块,如 print()
、len()
、type()
等,
匿名函数
匿名函数也称为 lambda 表达式,是一种简洁的函数定义方式,通常用于一次性的简单函数。例如:
multiply = lambda x, y: x * y
result = multiply(3, 5)
print(result) # 输出 15
闭包函数
闭包函数是指在一个函数内部定义了另一个函数,并且内部函数可以访问外部函数的变量。这种函数形式可以用来创建一些特定的函数,例如函数工厂或者装饰器。
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
add_5 = outer_function(5)
result = add_5(3)
print(result) # 输出 8
生成器函数
生成器函数使用 yield
关键字来定义,可以通过迭代器的方式逐步生成结果,而不是一次性生成所有结果。
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
print(next(fib)) # 输出 0
print(next(fib)) # 输出 1
print(next(fib)) # 输出 1
这些是 Python 中常见的函数类型,每种类型都有不同的特点和用途,一些比较高级用法的函数,后面学到了我们在来讲,现在只需要了解下就可以了。
更多精彩内容,请关注同名公众:一点sir(alittle-sir)