🥳🥳Welcome Huihui's Code World ! !🥳🥳
接下来看看由辉辉所写的关于Python的相关操作吧
目录
🥳🥳Welcome Huihui's Code World ! !🥳🥳
一.函数
1.函数与方法的区别
2.函数的定义
3.函数的传参
4.函数的返回值
5.函数的运用
二.lambda表达式
一.函数
1.函数与方法的区别
函数是独立的代码块,可以在任何地方调用。方法是与对象相关联的,只能通过对象调用
函数可以接受任意数量的参数,包括可选参数和默认参数。方法通常只接受一个参数,即对象本身
函数可以返回任何类型的值,包括None。方法通常返回与对象相关的值
函数可以定义在模块级别或类级别。方法只能定义在类级别
⭐⭐总之,函数是独立的代码块,可以在任何地方调用,而方法是与对象相关联的,只能通过对象调用(直接调用的是函数 通过对象点出来的是方法)
2.函数的定义
语法:
def function_name(parameters):"""docstring"""# function bodyreturn value#function_name是函数的名称 #parameters是函数的参数列表,可以是任意数量的参数,用逗号分隔 #函数体是由缩进的代码块组成,可以包含任意数量的语句 #return语句用于返回函数的结果,可以省略,如果省略,则函数返回None
演示:
#定义函数 def add(x, y):"""Return the sum of x and y."""return x + y#调用函数 result = add(2, 3) print(result) # Output: 5
3.函数的传参
位置参数传递:按照函数定义时参数的顺序,依次传入参数值
def add(x, y):return x + yresult = add(1, 2) # 位置参数传递 print(result) # 输出 3
关键字参数传递:通过指定参数名来传递参数值,可以不按照函数定义时参数的顺序传递参数
def add(x, y):return x + yresult = add(y=2, x=1) # 关键字参数传递 print(result) # 输出 3
默认参数传递:在函数定义时为参数指定默认值,调用函数时可以不传递该参数,使用默认值
def add(x, y=2):return x + yresult1 = add(1) # 默认参数传递 result2 = add(1, 3) # 位置参数传递 print(result1) # 输出 3 print(result2) # 输出 4
可变参数传递:在函数定义时使用
*args
语法,可以接收任意数量的位置参数,将它们作为元组传递给函数def add(*args):result = 0for arg in args:result += argreturn resultresult1 = add(1, 2, 3) # 可变参数传递 result2 = add(1, 2, 3, 4, 5) print(result1) # 输出 6 print(result2) # 输出 15
关键字可变参数传递:在函数定义时使用
**kwargs
语法,可以接收任意数量的关键字参数,将它们作为字典传递给函数def print_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")print_info(name="Alice", age=18) # 关键字可变参数传递 # 输出: # name: Alice # age: 18
4.函数的返回值
①返回值不限类型,所以不需要指定返回类型
②使用 return 关键字
③可以通过元组的形式返回多个值
5.函数的运用
①函数嵌套
#题目需求:定义求和函数,在求和函数上完成平均值函数def sum_numbers(numbers):"""求和函数"""result = 0for number in numbers:result += numberreturn resultdef average_numbers(numbers):"""平均值函数"""sum_result = sum_numbers(numbers)return sum_result / len(numbers)numbers = [1, 2, 3, 4, 5] sum_result = sum_numbers(numbers) average_result = average_numbers(numbers) print(sum_result) # 输出 15 print(average_result) # 输出 3.0
②变量的作用域区分
▲全局变量是在函数外部定义的变量,可以在程序的任何地方访问
x = 10 # 全局变量def print_x():print(x) # 可以访问全局变量xprint_x() # 输出 10#变量x是在函数外部定义的,因此它是全局变量。在print_x函数中,我们可以直接访问全局变量x
▲局部变量是在函数内部定义的变量,只能在函数内部访问
def print_x():x = 10 # 局部变量print(x) # 可以访问局部变量xprint_x() # 输出 10#变量x是在print_x函数内部定义的,因此它是局部变量。在函数外部无法访问局部变量x
🔺需要注意的是,如果在函数内部使用了与全局变量同名的变量,那么该变量会被视为局部变量,而不是全局变量
x = 10 # 全局变量def print_x():x = 20 # 局部变量,与全局变量同名print(x) # 访问局部变量xprint_x() # 输出 20 print(x) # 输出 10,访问全局变量x#虽然全局变量x的值为10,但是在print_x函数内部我们定义了一个同名的局部变量x #因此在函数内部访问的是局部变量x的值,而不是全局变量x的值 #在函数外部访问x时,仍然访问的是全局变量x的值
二.lambda表达式
定义:相当于匿名函数,可以简化目前的函数,在 java 中的流式操作与函数接口有体现
使用场景及示例:
①排序:lambda表达式可以作为
sorted
函数的key
参数,用于指定排序规则使用lambda表达式按照字符串长度对列表进行排序
words = ["apple", "banana", "cherry", "date"] sorted_words = sorted(words, key=lambda x: len(x)) print(sorted_words) # 输出 ["date", "apple", "banana", "cherry"]
②过滤:ambda表达式可以作为
filter
函数的第一个参数,用于指定过滤规则使用lambda表达式过滤出列表中的偶数
numbers = [1, 2, 3, 4, 5, 6] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # 输出 [2, 4, 6]
③映射:lambda表达式可以作为
map
函数的第一个参数,用于指定映射规则使用lambda表达式将列表中的元素平方
numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(lambda x: x ** 2, numbers)) print(squared_numbers) # 输出 [1, 4, 9, 16, 25]
④函数传参:lambda表达式可以作为函数的参数,用于指定函数的行为
def apply_operation(operation, x, y):return operation(x, y)result = apply_operation(lambda x, y: x + y, 1, 2) print(result) # 输出 3
好啦,今天的分享就到这了,希望能够帮到你呢!😊😊