🥳🥳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
好啦,今天的分享就到這了,希望能夠幫到你呢!😊😊???