一、定义和调用函数
实现单一的功能或任务,通常可定义一个函数。定义函数时需要使用关键字def,后面跟随函数名和圆括号,括号内可以定义参数。函数的主体部分需要使用冒号和缩进来区分。例如:
def hello():
print("Hello world!")
hello()
上面代码中,hello()函数定义了一个没有参数的函数,函数体中的语句将会在函数调用时执行,并输出"Hello world!"字符串。
二、函数的参数
函数的参数可分为两种:必选参数和关键字参数。
必选参数:必选参数是指必须要传入正确的参数,否则函数将无法正常工作。例如:
def add(x, y):
z = x + y
print(z)
add(5, 3)
上例中,x和y就是必选参数,add(5, 3)函数调用时,将5、3传递给了函数参数x和y,函数计算x和y之和,并输出结果。
关键字参数:关键字参数为函数提供了更强的可读性和可维护性,可以使调用方更加明确地知道函数的参数类型。例如:
def divide(a, b):
c = a / b
print(c)
divide(b=3, a=9)
其中,a和b都是关键字参数,divide(b=3, a=9)函数调用时,参数的传递顺序不影响函数的计算结果。
三、函数的返回值
Python中的函数默认返回None值,但是我们可以使用关键字return来指定函数的返回值。例如:
def add(x, y):
z = x + y
return z
result = add(5, 3)
print(result)
在上例中,add()函数通过return返回计算结果,之后,将计算结果赋值给变量result,并输出result的值。
四、默认参数和可变参数
Python函数可以有默认参数,这些参数在函数定义时指定一个默认值,并且在调用函数时不传递该参数。例如:
def greeting(name="Python"):
print("Hello,", name)
greeting()
greeting("world")
在上例中,greeting()调用时未传递参数,因此使用默认值"Python",其输出结果为"Hello, Python"。greeting("world")函数调用时传递了"wold"参数,因此输出结果为"Hello, world"。
Python还有可变参数,这些参数在函数定义时使用*prefix表示,可以通过名字或位置改变传递参数的方式。例如:
def concatenate(*words):
result = ""
for word in words:
result += word
return result
print(concatenate("Hello", " ", "World"))
print(concatenate("I", " ", "am", " ", "a", " ", "Python", " ", "developer."))
上述代码中,函数concatenate()使用可变参数*words作为函数参数,通过for循环将这些参数进行拼接。函数调用时,可以传递任意数量的参数,将这些参数连接形成一个单一的字符串并输出结果。