深入淺出Python函數:參數傳遞、作用域與案例詳解

在這里插入圖片描述

🙋?♀? 博主介紹:顏顏yan_
? 本期精彩:深入淺出Python函數:參數傳遞、作用域與案例詳解
🏆 熱門專欄:零基礎玩轉Python爬蟲:手把手教你成為數據獵人
🚀 專欄亮點:零基礎友好 | 實戰案例豐富 | 循序漸進教學 | 代碼詳細注釋
💡 學習收獲:掌握爬蟲核心技術,成為數據采集高手,開啟你的數據科學之旅!

🔥 如果覺得文章有幫助,別忘了點贊👍 收藏? 關注🚀,你的支持是我創作的最大動力!


文章目錄

  • 前言
  • 什么是函數
  • 為什么要使用自定義函數
  • 函數定義語法
    • 基本示例
  • 定義函數的注意事項
    • def關鍵字的重要性
    • 函數命名規范
    • 參數列表的靈活性
    • 返回值的處理
  • 函數參數
    • 帶有默認值的參數
    • 多參數函數
      • 位置參數:基于參數位置傳遞
      • 關鍵字參數:基于參數名傳遞
      • 參數傳遞的重要規則
      • 可變參數:處理不確定數量的輸入
  • 函數變量作用域
    • 局部變量:函數內部的私有空間
    • 全局變量:程序的公共資源
      • 作用域
    • 使用global關鍵字:突破局部限制
    • 嵌套函數中的作用域:nonlocal的力量
    • 作用域查找順序(LEGB規則)
  • 函數的高級特性
    • 函數作為參數
    • Lambda函數:簡潔的匿名函數
  • 總結


前言

函數是Python編程中最重要的概念之一,它們幫助我們組織代碼、提高代碼復用性并讓程序更加模塊化。本文將深入探討Python中的用戶自定義函數、參數傳遞以及變量作用域等核心概念。


什么是函數

在深入講解用戶自定義函數之前,我們先來理解什么是函數。從數學的角度來看,函數是一種映射關系,給定輸入值,會產生對應的輸出值。在編程中,函數的概念也是如此——它接收一些輸入(稱為參數),執行特定的操作,然后可能返回一個結果。

Python中的函數大致可以分為兩類:

  • 內置函數(Built-in Function,縮寫BIF):這些是Python官方提供的函數,如print()用于輸出、len()用于獲取長度、max()用于找最大值等。這些函數是Python語言的一部分,可以直接使用。
  • 用戶自定義函數:這些是我們根據自己的需求創建的函數,可以封裝特定的業務邏輯或算法。
    Python函數語法圖

為什么要使用自定義函數

在實際編程中,我們經常會遇到需要重復執行某些操作的情況。比如,在一個學生管理系統中,我們可能需要多次計算學生的平均成績。如果每次都重新寫一遍計算邏輯,不僅代碼冗余,而且容易出錯。這時候,函數就發揮了巨大的作用:

  1. 代碼復用:一次編寫,多次使用,避免重復勞動
  2. 模塊化編程:將復雜的問題分解為小的、易于管理的部分
  3. 提高可維護性:當需要修改某個功能時,只需要修改函數內部的代碼
  4. 增強可讀性:通過函數名就能大致了解代碼的功能
  5. 便于測試:可以單獨對函數進行測試,確保其正確性

函數定義語法

自定義函數的語法格式:

def 函數名(參數列表):"""函數文檔字符串(可選)"""函數體return 返回值  # 可選

這個語法看起來簡單,但每個部分都有其重要作用:

  • def關鍵字:告訴Python解釋器我們要定義一個函數
  • 函數名:函數的標識符,應該具有描述性,讓人一看就知道函數的作用
  • 參數列表:函數接收的輸入,可以為空
  • 文檔字符串:用三引號包圍的字符串,用于描述函數的用途、參數和返回值
  • 函數體:函數的核心邏輯,實現具體功能
  • return語句:指定函數的返回值,如果沒有return,函數默認返回None

基本示例

# 無參數函數
def greet():print("Hello, World!")
# 調用函數
greet() 

這是最基本的函數示例。這個函數沒有參數,也沒有返回值,它的唯一作用就是打印一句問候語。雖然簡單,但它展示了函數的基本結構。當我們調用greet()時,程序會執行函數內部的代碼,輸出"Hello, World!"。
在這里插入圖片描述

# 有參數和返回值的函數
def add_numbers(a, b):"""計算兩個數的和"""result = a + breturn result# 調用函數
sum_result = add_numbers(5, 3)
print(f"5 + 3 = {sum_result}")  # 輸出: 5 + 3 = 8

這個函數接收兩個參數ab,計算它們的和,并通過return語句返回結果。注意幾個要點:

  • 參數ab是函數的輸入接口
  • 函數內部可以進行任意的計算和處理
  • return語句不僅結束函數的執行,還將結果傳遞給調用者
  • 調用函數時,我們可以將返回值賦給一個變量
    在這里插入圖片描述
# 計算圓的面積
import mathdef calculate_circle_area(radius):"""計算圓的面積參數: radius - 圓的半徑返回值: 圓的面積"""if radius < 0:return None  # 半徑不能為負數area = math.pi * radius ** 2return round(area, 2)# 測試函數
radius = 5
area = calculate_circle_area(radius)
print(f"半徑為 {radius} 的圓的面積是: {area}")  

這個函數展現了更多的實際編程技巧:

  • 輸入驗證:檢查半徑是否為負數
  • 使用標準庫:導入math模塊使用圓周率π
  • 數值處理:使用round()函數保留兩位小數,提高結果的可讀性
  • 文檔字符串:詳細描述了函數的用途、參數和返回值
    在這里插入圖片描述

定義函數的注意事項

def關鍵字的重要性

def是Python中定義函數的唯一關鍵字,不能省略,也不能替換為其他詞匯。這是Python語法的硬性規定。

函數命名規范

函數名應該遵循Python的命名規范:

  • 只能包含字母、數字和下劃線
  • 不能以數字開頭
  • 應該使用小寫字母,單詞間用下劃線分隔(蛇形命名法)
  • 名稱應該具有描述性,能夠表達函數的功能

參數列表的靈活性

參數列表可以為空,也可以包含多個參數。參數之間用逗號分隔,每個參數都可以有默認值。

返回值的處理

  • 如果函數需要返回數據,使用return語句
  • 如果沒有顯式的return語句,函數會默認返回None
  • return語句會立即結束函數的執行,后續代碼不會被執行

好的函數名應該是一個動詞短語,清楚地表達函數的功能。

# 函數命名示例
def good_function_name():  # 好的命名方式passdef calculate_student_average():  # 描述性命名pass# 避免這樣的命名
def func():  # 太簡單pass

函數參數

帶有默認值的參數

在現實生活中,許多操作都有一些"默認設置"。比如,你去咖啡店點咖啡,如果不特別說明,店員可能會給你中杯、正常糖分的咖啡。在編程中,默認參數就是這樣的概念——當用戶沒有提供某個參數時,函數會使用預設的默認值。

默認參數的優勢在于:

  • 提高易用性:調用者不需要為每個參數都提供值
  • 向后兼容性:添加新參數時不會破壞現有代碼
  • 減少代碼重復:常用的參數值可以作為默認值
def create_profile(name, age, city="未知", profession="學生"):"""創建用戶檔案name: 姓名(必需參數)age: 年齡(必需參數)city: 城市(默認值: "未知")profession: 職業(默認值: "學生")"""profile = f"姓名: {name}, 年齡: {age}, 城市: {city}, 職業: {profession}"return profile# 不同的調用方式
print(create_profile("張三", 25))
print(create_profile("李四", 30, "北京"))
print(create_profile("王五", 28, "上海", "工程師"))

在這個例子中,nameage是必需參數,而cityprofession有默認值。這樣設計的好處是:

  • 最簡調用:只需提供姓名和年齡
  • 部分定制:可以指定城市,職業使用默認值
  • 完全定制:所有參數都可以自定義
    在這里插入圖片描述

多參數函數

如果函數有多個參數,在調用時可以有兩種傳遞參數的方式。

位置參數:基于參數位置傳遞

位置參數是最直觀的參數傳遞方式,參數的值按照定義時的順序傳遞給函數。這就像排隊一樣,第一個值給第一個參數,第二個值給第二個參數,以此類推。

def calculate_rectangle_info(length, width, height=1):"""計算矩形信息"""area = length * widthperimeter = 2 * (length + width)volume = length * width * heightreturn {'area': area,'perimeter': perimeter,'volume': volume}# 使用位置參數
result = calculate_rectangle_info(10, 5, 2)
print(f"面積: {result['area']}, 周長: {result['perimeter']}, 體積: {result['volume']}")

在這個例子中,10傳給length,5傳給width,2傳給height。位置參數的優點是簡潔明了,缺點是必須記住參數的順序。
在這里插入圖片描述

關鍵字參數:基于參數名傳遞

關鍵字參數允許我們通過參數名來傳遞值,這樣就不需要記住參數的順序了。這種方式特別適合參數較多或者參數含義不夠直觀的情況。

關鍵字參數的優勢:

  • 提高可讀性:代碼自文檔化,參數的含義一目了然
  • 順序無關:不需要記住參數的順序
  • 部分指定:可以只為某些參數使用關鍵字形式
# 使用關鍵字參數
result = calculate_rectangle_info(width=8, length=12, height=3)
print(f"面積: {result['area']}, 周長: {result['perimeter']}, 體積: {result['volume']}")
# 輸出: 面積: 96, 周長: 40, 體積: 288# 混合使用位置參數和關鍵字參數
result = calculate_rectangle_info(15, width=6)  # length=15 (位置), width=6 (關鍵字)
print(f"面積: {result['area']}")  # 輸出: 面積: 90

參數傳遞的重要規則

一旦使用了關鍵字參數,后續的所有參數都必須使用關鍵字形式。如果允許關鍵字參數后面跟位置參數,Python解釋器將無法確定參數的正確對應關系。

def demo_function(a, b, c=10, d=20):return f"a={a}, b={b}, c={c}, d={d}"# 正確的調用方式
print(demo_function(1, 2))                    # a=1, b=2, c=10, d=20
print(demo_function(1, 2, 3))                 # a=1, b=2, c=3, d=20
print(demo_function(1, 2, d=30))              # a=1, b=2, c=10, d=30
print(demo_function(1, b=2, c=3, d=4))        # a=1, b=2, c=3, d=4# 錯誤的調用方式
# demo_function(a=1, 2)  # SyntaxError: 位置參數不能跟在關鍵字參數后面

在這里插入圖片描述

可變參數:處理不確定數量的輸入

在實際編程中,我們經常遇到不知道會有多少個參數的情況。比如,計算多個數字的平均值,數字的個數可能是2個,也可能是10個。這時候,可變參數就派上用場了。

Python提供了兩種可變參數:

  • *args:接收任意數量的位置參數,存儲為元組
  • **kwargs:接收任意數量的關鍵字參數,存儲為字典

可變參數的強大之處在于:

  • 靈活性:可以處理任意數量的參數
  • 擴展性:添加新的參數不需要修改函數定義
  • 通用性:同一個函數可以處理不同場景的需求
def calculate_average(*numbers):"""計算任意數量數字的平均值"""if not numbers:return 0total = sum(numbers)average = total / len(numbers)return round(average, 2)# 測試可變參數
print(calculate_average(10, 20, 30))         
print(calculate_average(1, 2, 3, 4, 5))       
print(calculate_average(100))               
def create_student_info(name, **kwargs):"""創建學生信息,接受任意關鍵字參數"""info = f"學生姓名: {name}\n"for key, value in kwargs.items():info += f"{key}: {value}\n"return info# 測試關鍵字參數
student = create_student_info("張三",age=20,major="計算機科學",grade="大二",gpa=3.8
)
print(student)

在這個例子中,*numbers接收了所有傳入的數字,函數內部可以像處理元組一樣處理這些數字。第二個例子中,**kwargs接收了除name之外的所有關鍵字參數,這樣我們可以為學生添加任意的額外信息,而不需要修改函數定義。
在這里插入圖片描述


函數變量作用域

變量作用域是編程中一個既基礎又容易混淆的概念。如果把程序比作一個大樓,那么作用域就像是樓層和房間——不同樓層的房間可能有相同的房間號,但它們是完全獨立的空間。
在這里插入圖片描述

局部變量:函數內部的私有空間

局部變量是在函數內部定義的變量,它們的"生命周期"僅限于函數執行期間。就像是你在酒店房間里放置的物品,只有在你住在這個房間的時候才能使用,一旦退房,這些物品就不再屬于你了。
局部變量的特點:

  • 生命周期短:函數開始執行時創建,函數結束時銷毀
  • 作用域有限:只能在定義它的函數內部使用
  • 互不干擾:不同函數中的同名局部變量是完全獨立的
  • 優先級高:當局部變量和全局變量同名時,函數內部優先使用局部變量

全局變量:程序的公共資源

全局變量是在函數外部(模塊級別)定義的變量,它們可以被程序中的任何函數訪問。這就像是大樓的公共設施,所有住戶都可以使用,但需要遵循一定的使用規則。

全局變量的特點:

  • 生命周期長:從定義開始,直到程序結束
  • 作用域廣:整個模塊中的所有函數都可以訪問
  • 共享性:多個函數可以共享同一個全局變量
  • 需謹慎修改:修改全局變量會影響所有使用它的地方

作用域

讓我們通過一個詳細的例子來理解局部變量和全局變量的區別:

# 全局變量
global_var = "我是全局變量"
counter = 0def scope_demo():# 局部變量local_var = "我是局部變量"counter = 10  # 這是局部變量,不會影響全局的counterprint(f"函數內部 - 局部變量: {local_var}")print(f"函數內部 - 全局變量: {global_var}")print(f"函數內部 - 局部counter: {counter}")# 調用函數
scope_demo()
print(f"函數外部 - 全局變量: {global_var}")
print(f"函數外部 - 全局counter: {counter}")  # 仍然是0,沒有被函數內部的賦值影響# 嘗試訪問局部變量(會報錯)
# print(local_var)  # NameError: name 'local_var' is not defined

在這里插入圖片描述

使用global關鍵字:突破局部限制

有時候,我們確實需要在函數內部修改全局變量。這時候,global關鍵字就派上用場了。它告訴Python:“我要修改的是全局變量,不是創建新的局部變量”。

使用global的注意事項

  • 只有在需要修改全局變量時才使用global
  • 過多的全局變量會讓程序難以維護
  • 考慮使用類或者傳遞參數來替代全局變量
total_sales = 0  # 全局變量def add_sale(amount):global total_sales  # 聲明要修改全局變量total_sales += amountprint(f"本次銷售: {amount}, 總銷售額: {total_sales}")def get_total_sales():return total_sales# 測試全局變量修改
print(f"初始總銷售額: {get_total_sales()}")  # 輸出: 0add_sale(1000) 
add_sale(1500) 
add_sale(800) print(f"最終總銷售額: {get_total_sales()}") 

在這里插入圖片描述

嵌套函數中的作用域:nonlocal的力量

Python支持嵌套函數(函數內部定義的函數),這創造了更復雜但也更靈活的作用域層次。在嵌套函數中,有時我們需要修改外層函數的局部變量,這時候nonlocal關鍵字就發揮作用了。

嵌套函數的特性:

  • 閉包特性:內層函數可以訪問外層函數的變量
  • 狀態修改:通過nonlocal可以修改外層函數的局部變量
  • 數據封裝:外層函數的變量對外部是不可見的,實現了良好的封裝
def outer_function(x):"""外層函數"""outer_var = "外層變量"def inner_function(y):"""內層函數"""inner_var = "內層變量"nonlocal outer_var  # 聲明要修改外層函數的變量outer_var = "修改后的外層變量"print(f"內層函數 - 參數y: {y}")print(f"內層函數 - inner_var: {inner_var}")print(f"內層函數 - outer_var: {outer_var}")print(f"內層函數 - 參數x: {x}")return inner_varprint(f"外層函數 - 調用前outer_var: {outer_var}")result = inner_function(20)print(f"外層函數 - 調用后outer_var: {outer_var}")return result# 測試嵌套函數
returned_value = outer_function(10)
print(f"返回值: {returned_value}")

在這里插入圖片描述

作用域查找順序(LEGB規則)

當Python解釋器遇到一個變量名時,它會按照特定的順序查找這個變量。這個順序被稱為LEGB規則:

  • L (Local):局部作用域,函數內部的變量
  • E (Enclosing):嵌套作用域,外層函數的局部變量
  • G (Global):全局作用域,模塊級別的變量
  • B (Built-in):內置作用域,Python內置的變量和函數

LEGB規則的重要意義:

  • 查找效率:Python會從最近的作用域開始查找,提高效率
  • 變量屏蔽:內層作用域的同名變量會"屏蔽"外層的變量
  • 預測性:理解這個規則可以幫助我們預測變量的值
builtin_name = len  # 使用內置函數len
global_name = "全局作用域"def enclosing_function():enclosing_name = "嵌套作用域"def local_function():local_name = "局部作用域"# Python按照LEGB順序查找變量print(f"局部變量: {local_name}")           # L - Localprint(f"嵌套變量: {enclosing_name}")       # E - Enclosingprint(f"全局變量: {global_name}")          # G - Globalprint(f"內置函數: {builtin_name([1,2,3])}")  # B - Built-inlocal_function()enclosing_function()

合理使用不同作用域的變量,可以讓我們的代碼更加清晰、安全和易于維護。


函數的高級特性

函數作為參數

在Python中,函數是"一等公民",這意味著函數可以像變量一樣被傳遞、賦值和操作。函數作為參數傳遞給其他函數的特性,被稱為高階函數,這是函數式編程的重要特征。

def apply_operation(numbers, operation_func):"""將操作函數應用到數字列表上"""return [operation_func(x) for x in numbers]def square(x):return x ** 2def cube(x):return x ** 3# 測試
numbers = [1, 2, 3, 4, 5]
print(f"原始數字: {numbers}")
print(f"平方結果: {apply_operation(numbers, square)}")
print(f"立方結果: {apply_operation(numbers, cube)}")

這個例子展現了高階函數的強大之處:

  • 代碼復用apply_operation可以應用任何單參數函數
  • 邏輯分離:數據處理邏輯和具體操作邏輯分開
  • 擴展性強:添加新的操作只需要定義新函數,不需要修改主邏輯

Lambda函數:簡潔的匿名函數

對于簡單的操作,定義完整的函數可能會顯得冗余。Lambda函數提供了一種創建小型匿名函數的方式,特別適合在高階函數中使用。

Lambda函數的特點:

  • 語法簡潔:一行代碼就能定義函數
  • 即用即拋:通常用于一次性的簡單操作
  • 功能限制:只能包含表達式,不能包含語句
# 使用lambda函數
numbers = [1, 2, 3, 4, 5]
print(f"雙倍結果: {apply_operation(numbers, lambda x: x * 2)}")
print(f"平方根結果: {apply_operation(numbers, lambda x: x ** 0.5)}")# 排序中使用lambda
students = [("Alice", 85),("Bob", 92),("Charlie", 78),("Diana", 96)
]# 按成績排序
sorted_by_score = sorted(students, key=lambda x: x[1], reverse=True)
print(f"按成績排序: {sorted_by_score}")

總結

編程是一門需要實踐的技藝。理論固然重要,但唯有在真實項目中不斷磨礪應用,才能真正融會貫通。愿你在這條Python編程之路上不斷精進,寫出更優雅高效的代碼!

我是顏顏yan_,期待與您交流探討。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89905.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89905.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89905.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ps aux 和 ps -ef

在 Linux/Unix 系統中&#xff0c;ps aux 和 ps -ef 都是用于查看進程信息的命令&#xff0c;結合 grep node 可以篩選出與 Node.js 相關的進程。它們的核心功能相似&#xff0c;但在輸出格式和選項含義上有區別&#xff1a;1. 命令對比命令含義主要區別ps auxBSD 風格語法列更…

Spark ML 之 LSH

src/test/scala/org/apache/spark/ml/feature/BucketedRandomProjectionLSHSuite.scala test("approxSimilarityJoin for self join") {val data = {for (i <- 0 until 24) yield Vectors

關鍵成功因素法(CSF)深度解析:從戰略目標到數據字典

關鍵成功因素法由John Rockart提出&#xff0c;用于信息系統規劃&#xff0c;幫助企業識別影響系統成功的關鍵因素&#xff0c;從而確定信息需求&#xff0c;指導信息技術管理。該方法通過識別關鍵成功因素&#xff0c;找出關鍵信息集合&#xff0c;確定系統開發優先級&#xf…

Django母嬰商城項目實踐(六)- Models模型之ORM操作

6、Models模型操作 1 ORM概述 介紹 Django對數據進行增刪改操作是借助內置的ORM框架(Object Relational Mapping,對象關系映射)所提供的API方法實現的,允許你使用類和對象對數據庫進行操作,從而避免通過SQL語句操作數據庫。 簡單來說,ORM框架的數據操作API是在 QuerySet…

【PTA數據結構 | C語言版】哥尼斯堡的“七橋問題”

本專欄持續輸出數據結構題目集&#xff0c;歡迎訂閱。 文章目錄題目代碼題目 哥尼斯堡是位于普累格河上的一座城市&#xff0c;它包含兩個島嶼及連接它們的七座橋&#xff0c;如下圖所示。 可否走過這樣的七座橋&#xff0c;而且每橋只走過一次&#xff1f;瑞士數學家歐拉(Leo…

Redis 詳解:從入門到進階

文章目錄前言一、什么是 Redis&#xff1f;二、Redis 使用場景1. 緩存熱點數據2. 消息隊列3. 分布式鎖4. 限流與防刷5. 計數器、排行榜三、緩存三大問題&#xff1a;雪崩 / 穿透 / 擊穿1. ?? 緩存雪崩&#xff08;Cache Avalanche&#xff09;2. &#x1f50d; 緩存穿透&…

QCustomPlot 使用教程

下載網址&#xff1a;官方網站&#xff1a;http://www.qcustomplot.com/我的環境是 window10 qt5.9.9 下載后&#xff0c;官網提供了很多例子。可以作為參考直接運行自己如何使用&#xff1a;第一步&#xff1a;使用QCustomPlot非常簡單&#xff0c;只需要把qcustomplot.cpp和…

基于springboot+mysql的作業管理系統(源碼+論文)

一、開發環境 1 Spring Boot框架簡介 描述&#xff1a; 簡化開發&#xff1a;Spring Boot旨在簡化新Spring應用的初始搭建和開發過程。配置方式&#xff1a;采用特定的配置方式&#xff0c;減少樣板化配置&#xff0c;使開發人員無需定義繁瑣的配置。開發工具&#xff1a;可…

LVS 集群技術基礎

LVS(linux virual server)LVS集群技術---NAT模式一.準備四臺虛擬機1.client(eth0ip:172.254.100)2.lvs(eth0ip:172.254.200;eth1ip:192.168.0.200)3.rs1(eht0ip:192.168.0.10)4.rs2(eth0ip:192.168.0.20)二&#xff1a;在rs1和rs2安裝httpd功能dnf/yum install htppd -y三&…

Oracle RU19.28補丁發布,一鍵升級穩

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中國DBA聯盟(ACDU)成員&#xff0c;15年DBA工作經驗 Oracle、PostgreSQL ACE CSDN博客專家及B站知名UP主&#xff0c;全網粉絲15萬 擅長主流Oracle、MySQL、PG、高斯及…

lvs 集群技術

LVS概念LVS&#xff1a;Linux Virtual Server&#xff0c;負載調度器&#xff0c;是一種基于Linux操作系統內核的高性能、高可用網絡服務負載均衡解決方案。LVS工作原理基于網絡層&#xff08;四層&#xff0c;傳輸層&#xff09;的負載均衡技術&#xff0c;它通過內核級別的IP…

AR巡檢和傳統巡檢的區別

隨著工業4.0時代的到來&#xff0c;數字化轉型逐漸成為各行各業提升效率、保障安全和降低成本的關鍵。而在這一轉型過程中&#xff0c;巡檢工作作為確保設備穩定運行的重要環節&#xff0c;逐步從傳統方式走向智能化、數字化。尤其是增強現實&#xff08;AR&#xff09;技術的引…

Axure設計設備外殼 - AxureMost 落葵網

在UI設計中&#xff0c;設備外殼&#xff08;硬件外殼與界面中的“虛擬外殼”&#xff09;和背景是構成視覺體驗的核心元素&#xff0c;它們不僅影響美觀&#xff0c;更直接關聯用戶對功能的理解和操作效率。以下從設計角度詳細解析其作用與使用邏輯&#xff1a; 一、設備外殼&…

基于深度學習的電信號分類識別與混淆矩陣分析

基于深度學習的電信號分類識別與混淆矩陣分析 1. 引言 1.1 研究背景與意義 電信號分類識別是信號處理領域的重要研究方向,在醫療診斷、工業檢測、通信系統等多個領域有著廣泛的應用。傳統的電信號分類方法主要依賴于手工提取特征和淺層機器學習模型,但這些方法往往難以捕捉…

Git 和Gitee遠程連接 上傳和克隆

第一步創建遠程庫第二步初始化本地庫創建鏈接刪掉.idea 和target(這兩個沒用運行就自動生成了)右鍵空白處選擇Git Bash Here 初始化本地庫git init建立遠程連接建立連接這里是我的地址&#xff0c;后面拼接你的地址git remote add origin https://gitee.com/liu-qing_liang/git…

零基礎100天CNN實戰計劃:用Python從入門到圖像識別高手

一、為什么你需要這份100天CNN學習計劃&#xff1f; 在人工智能領域&#xff0c;卷積神經網絡&#xff08;CNN&#xff09; 是計算機視覺的基石技術。無論是人臉識別、醫學影像分析還是自動駕駛&#xff0c;CNN都扮演著核心角色。但對于初學者來說&#xff0c;面對復雜的數學公…

Python Matplotlib中的fontdict參數說明

文章目錄 1 fontdict 參數的常用屬性 1.1 使用示例 1.2 其他注意事項 1.3 結合其他參數 各位老板好, 在 Python 的 Matplotlib 庫中,fontdict 參數用于定義文本屬性的字典。這些屬性包括字體大小、顏色、樣式等,主要用于控制標題、標簽和其他文本元素的顯示效果。通過將 font…

25數據庫三級備考自整理筆記

備考策略&#xff1a;博主是邊做題邊學習知識點的&#xff0c;從每個章節->每套真題的流程&#xff0c;知識點清晰詳細&#xff0c;喜歡的請點個關注和收藏&#xff0c;祝大家考試順利&#xff0c;必過必過必過&#xff01;一、數據庫應用系統開發方法1.數據庫的三級模式&am…

文娛投資的逆勢突破:博派資本的文化旅游綜合體戰略

在多數資本因“變現難、政策風險、退出緩慢”等問題紛紛撤離文娛賽道時&#xff0c;博派資本創始人鄭蘭卻選擇逆勢而上&#xff0c;聚焦線下文化消費&#xff0c;并推出了全新的文化旅游綜合體戰略。鄭蘭深刻認為&#xff0c;2025年將成為區域經濟和文化產業復蘇的關鍵節點。她…

「日拱一碼」033 機器學習——嚴格劃分

目錄 簡單隨機劃分&#xff08;train_test_split&#xff09; 分組劃分&#xff08;Group Splitting&#xff09; 簡單分組劃分 (Group Splitting) 分層分組劃分 (Stratified Group Splitting) 交叉驗證法&#xff08;Cross-Validation&#xff09; 分組K 折交叉驗證&…