我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们讨论了函数的基本介绍。今天我们继续学习一下函数参数。
1、形参和实参
我们上篇已讨论过,为了对比今天学习的直接举例:
形式参数:在定义函数时,函数名后面括号中参数为“形式参数”
实际参数:在调用一个函数时,函数后面括号中的参数为“实际参数”
还是以上面的例子来说明,如下面所示黄色阴影的属于形式参数,绿色阴影的实际参数
import re
def replace_chars(string):
pattern = r'(最好)|(最优秀)|(遥遥领先)'
new_string = re.sub(pattern,"@^^@",string)
print(new_string)
#给一个字符串,来替换敏感词
advertisement_huawei= "华为华为,科技遥遥领先,是宇宙中最优秀的手机!"
replace_chars(advertisement_huawei)
2、位置参数
在Python中,位置参数是在函数调用中按照它们在函数定义中的顺序进行传递的参数。它们不需要在函数调用中指定参数名,只需要传入对应的值即可。
例如,定义一个函数来求两个数的和
# 定义函数,x和y是形式参数
def add_numbers(x, y):
return x + y
# 调用函数,1和2是实际参数
result = add_numbers(1, 2)
print(result) # 输出结果是3
还是上面的例子,其中x,y就是位置参数。我们调用函数需要按照对应的顺序输入即可。
两个关键点:1)调用时输入的实际参数个数要和位置参数一致;
2) 调用时输入的实际参数顺序要和位置参数顺序一致;
3、关键字参数
在Python中,关键字参数(keyword arguments)是一种参数传递的方式,它允许函数调用时参数的顺序与定义时不一致。关键字参数在函数内部的作用是为函数提供了一种指定参数值的方式,这样无需记忆参数的顺序。
关键字参数通常用于函数定义中,在函数调用时,使用参数的名字来指定参数值。
# 定义函数,x和y是形式参数
def sub_numbers(x, y):
return x - y
# 调用函数,1和2是实际参数
result = sub_numbers(5, 2)
print(result) # 输出结果是3
如上面的例子使用关键字参数来写:
# 定义函数,x和y是形式参数
def sub_numbers(x, y):
return x - y
# 调用函数,5和2是关键字参数
result = sub_numbers(y=2, x=5)
print(result) # 输出结果是3
4、设置默认值的参数
在Python中,你可以在函数定义时为参数设置默认值。这意味着在调用函数时,如果没有为这个参数提供一个值,它将使用这个默认值。
语法:def functionname(…[parameter1 = defaultvalue1])
[functionbody]
注意:默认值的参数需要放到末尾
举例说明:
#定义函数,有默认值
def greet(name,greetvalue ='GOOD morning!'):
print(name,greetvalue)
greet("mom") #使用默认参数
greet("mom","GOOD afternoon") #使用自定义的参数
输出结果:
5、可变参数
1)使用(*args)
在Python中,可以使用星号(*)操作符来定义可变参数。可变参数允许函数接收任意数量的位置参数。
语法:def functionname(*args)
这里的args是可变参数的名称,它将成为一个元组(tuple)。
下面是一个使用可变参数的例子:
def print_numbers(*args):
for number in args:
print(number)
# 调用函数并传递不同数量的参数
print_numbers(1, 2, 3)
print_numbers(1, 2, 3, 4, 5)
在Python中,可变参数允许你将一个不定数量的关键字参数作为字典的形式传递给一个函数。这些参数在函数内部会被处理成一个名为**kwargs的字典。
2)使用(**kwargs)
在Python中,可变参数允许你将一个不定数量的关键字参数作为字典的形式传递给一个函数。这些参数在函数内部会被处理成一个名为**kwargs的字典。
举例说明:
def greet_user(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
# 调用函数时传入不定数量的关键字参数
greet_user(name="Adewi", age=20, city="China")
6、类型联合运算符
类型联合运算符也可以应用于类型注解,在函数定义或变量声明时指定其类型
例如:
def square(a: int) -> int:
return a**2 #返回a的平方
result = square(5)
print(result)
输出 25
可以同时接收两个类型的数据,中间使用“|”表示:
def square(a: int|float) -> int|float:
return a**2 #返回a的平方
result = square(5)
result_f = square(5.0)
print(result)
print("平方为:{:.2f}".format(result_f))
输出结果:
今天先写学习到这里了,每天进步一点点。今天也要加油啊!