Python學習(3) ----- Python的函數定義及其使用

Python 中函數是組織好的、可重復使用的代碼塊,用于實現單一或相關聯的功能。下面是函數定義和使用的完整說明:


📌 一、函數定義語法

def 函數名(參數1, 參數2=默認值, *args, **kwargs):"""函數說明文檔"""函數體return 返回值

? 二、簡單示例

def greet(name):return f"Hello, {name}!"result = greet("Alice")
print(result)  # 輸出: Hello, Alice!

🔸 三、參數類型詳解

1. 位置參數

def add(a, b):return a + bprint(add(3, 5))  # 輸出 8

2. 默認參數

def greet(name, message="Hi"):return f"{message}, {name}!"print(greet("Tom"))            # Hi, Tom!
print(greet("Tom", "Hello"))   # Hello, Tom!

3. 可變參數 (*args)

args是可以自己命名的,這里的類型是元組(tuple)
tuple的特點
在這里插入圖片描述

def sum_all(*args):return sum(args)print(sum_all(1, 2, 3))  # 6

4. 關鍵字參數 (**kwargs)

適用于字典類型的入參,kwargs是可以自己命名的,這里的類型是字典(dict)

def show_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")show_info(name="Alice", age=30)
# 輸出:
# name: Alice
# age: 30

🔁 四、返回值

單值返回:

def square(x):return x * x

多值返回(返回元組):

def get_user():return "Tom", 25name, age = get_user()

?? 五、函數作為變量傳遞

def say_hello():print("Hello")greet = say_hello
greet()  # Hello

📖 六、帶文檔的函數

def square(x):"""返回數字的平方"""return x * xprint(square.__doc__)  # 返回函數說明文檔

? 七、匿名函數(lambda)

square = lambda x: x * x
print(square(5))  # 25

常用于排序、過濾等場景:

nums = [3, 1, 2]
nums.sort(key=lambda x: -x)

🧠 八、函數的好習慣

  • 使用明確的函數名和參數名
  • 編寫函數文檔字符串("""說明文字"""
  • 盡量保持函數短小和單一職責

下面是幾道精選的 Python 函數練習題,每道題都有題目說明提示,適合鞏固函數的定義與使用。


🧪 練習題 1:寫一個求最大值的函數

題目:編寫一個函數 get_max(a, b),返回兩個數中的最大值。

def get_max(a, b):# TODO: 返回較大的那個數passprint(get_max(10, 20))  # 應該輸出 20

? 提示:使用 if...else 判斷大小。


🧪 練習題 2:列表求和(可變參數)

題目:編寫一個函數 sum_all(*args),接收任意數量的參數,并返回它們的總和。

def sum_all(*args):# TODO: 返回所有參數的總和passprint(sum_all(1, 2, 3))        # 輸出 6
print(sum_all(5, 10, 15, 20))  # 輸出 50

? 提示:使用 sum() 函數或 for 循環遍歷 args


🧪 練習題 3:計算 BMI 指數

題目:寫一個函數 bmi(weight, height),根據體重(kg)和身高(米)計算 BMI = 體重 / 身高2。

def bmi(weight, height):# TODO: 返回 BMI 指數passprint(bmi(60, 1.7))  # 應該輸出大約 20.76

? 提示:BMI 的單位是 kg/m2,保留小數可用 round(bmi, 2)


🧪 練習題 4:歡迎語(帶默認參數)

題目:定義一個函數 greet(name, message="Hello"),默認打招呼用 “Hello”,可以自定義問候語。

def greet(name, message="Hello"):# TODO: 打印 message, name!passgreet("Tom")          # Hello, Tom!
greet("Alice", "Hi")  # Hi, Alice!

🧪 練習題 5:分析用戶信息(關鍵字參數)

題目:定義函數 print_info(**kwargs),可以接受任意鍵值對,并打印它們。
kwargs也可以叫其他名字主要是前面有**標識

def print_info(**kwargs):# TODO: 遍歷打印每一個 key: valuepassprint_info(name="Tom", age=22, city="Shanghai")

? 提示:用 for key, value in kwargs.items() 遍歷。


可以嘗試把這些函數寫進一個 .py 文件里,比如 my_functions.py

python my_functions.py

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

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

相關文章

vue2使用el-tree實現兩棵樹間節點的拖拽復制

原文鏈接&#xff1a;兩棵el-tree的節點跨樹拖拽實現 參照這篇文章&#xff0c;把它做成組件&#xff0c;新增左側樹&#xff08;可拖出&#xff09;被拖節點變灰提示&#xff1b; 拖拽中&#xff1a; 拖拽后&#xff1a; TreeDragComponent.vue <template><!-- …

智變與重構:AI 賦能基礎教育教學的范式轉型研究報告

一、研究背景與核心價值 &#xff08;一&#xff09;技術驅動下的教育轉型浪潮 在全球數字化轉型加速的背景下&#xff0c;人工智能作為核心技術力量&#xff0c;正重塑基礎教育生態。據《人工智能賦能未來教育研究報告》指出&#xff0c;我國教育數字化戰略行動已推動超 70…

Go語言中Print、Printf和Println的區別及使用場景詳解

在Go語言的fmt包中&#xff0c;Print、Printf和Println是三個基礎但功能各異的輸出函數。本文將從多個維度進行詳細對比分析&#xff0c;并給出具體的使用建議。 1. 核心區別深度解析 1.1. 函數簽名與基本行為 func Print(a ...interface{}) (n int, err error) func Printf…

高端制造行業 VMware 替代案例合集:10+ 頭部新能源、汽車、半導體制造商以國產虛擬化支持 MES、PLM 等核心應用系統

在“中國制造 2025”政策的推動下&#xff0c;國內的新能源、汽車制造、半導體、高端裝備等高端制造產業迎來了蓬勃發展&#xff0c;成為全球制造業版圖中舉足輕重的力量。訂單數量的激增與國產化轉型的趨勢&#xff0c;也為高端制造企業的 IT 基礎設施帶來了新的挑戰&#xff…

Spring Ai | 從零帶你一起走進AI項目(中英)

目錄 Thinking Study question pox.xml Maven Gradle Configure API Key Use the AI Client Question Thinking 讓數據變得更加貼近用戶的想法 Study question null pox.xml 添加依賴 Maven <dependencies><dependency><groupId>org.springfram…

LiveGBS作為下級平臺GB28181國標級聯2016|2022對接海康大華宇視華為政務公安內網等GB28181國標平臺查看級聯狀態及會話

LiveGBS作為下級平臺GB28181國標級聯2016|2022對接海康大華宇視華為政務公安內網等GB28181國標平臺查看級聯狀態及會話 1、GB/T28181級聯概述2、搭建GB28181國標流媒體平臺3、獲取上級平臺接入信息3.1、向下級提供信息3.2、上級國標平臺添加下級域3.3、接入LiveGBS示例 4、配置…

卸載 Office PLUS

Office PLUS作為微軟官方推出的智能辦公提效工具&#xff0c;自2015年問世以來&#xff0c;憑借其豐富的模板資源和便捷的智能功能&#xff0c;迅速贏得了廣大職場人士和學生的青睞。本文將全面介紹Office PLUS的發展歷程、核心功能、可能帶來的使用問題&#xff0c;以及如何徹…

影響沉金價格的因素如何體現在多層電路板制造上?

隨著科技的不斷發展&#xff0c;電子產品越來越普及&#xff0c;對電路板的需求也越來越大。多層電路板作為電子產品的核心部件&#xff0c;其性能和質量直接影響到整個產品的穩定性和可靠性。在多層電路板的生產過程中&#xff0c;沉金工藝是一種常用的表面處理方法&#xff0…

擴展摩爾投票法:找出出現次數超過 n/3 的元素

文章目錄 問題描述關鍵洞察算法原理Java 實現算法演示投票階段驗證階段 復雜度分析算法關鍵點通用化公式實際應用場景邊界情況處理總結 標簽&#xff1a;LeetCode 169, 摩爾投票法, 多數元素, 算法擴展, 數組處理 在解決多數元素問題時&#xff0c;我們學習了經典的摩爾投票法處…

Git:現代軟件開發的基石——原理、實踐與行業智慧·優雅草卓伊凡

Git&#xff1a;現代軟件開發的基石——原理、實踐與行業智慧優雅草卓伊凡 一、Git的本質與核心原理 1. 技術定義 Git是一個分布式版本控制系統&#xff08;DVCS&#xff09;&#xff0c;由Linus Torvalds在2005年為管理Linux內核開發而創建。其核心是通過快照&#xff08;Sna…

程序人生-hello’s P2P

計算機系統 大作業 題 目 程序人生-hello’s P2P 專 業 計算機與電子通信類 學   號 2023111990 班   級 23L0514 學 生 袁騁 指 導 教 師 史…

Java設計模式之設計原則

Java設計模式 Java設計模式主要原則是開閉原則&#xff0c;即對擴展開放&#xff0c;對修改關閉。由此衍生出5大原則&#xff1a;單一職責原則&#xff0c;里式替換原則&#xff0c;迪米特原則&#xff0c;接口隔離職責&#xff0c;依賴倒置原則。1、開閉原則 開閉原則&#x…

使用 ssld 提取CMS 簽名并重簽名

拿SpringBoard的cms簽名和entitlements.xml&#xff0c;對tihook.dylib進行重簽名 工具來源&#xff1a;https://github.com/eksenior/ssld

WebFuture:測試郵件發送失敗

問題描述&#xff1a;測試郵件發送失敗 問題分析&#xff1a; 查看報錯是模擬發送郵件請將systemsettings.json中的EnabledMail設為false&#xff01; 解決方案&#xff1a; 網站根目錄找到Configuration&#xff0c;如下圖所示&#xff0c;將systemsettings.json中的Enabled…

LiveNVR 直播流拉轉:Onvif/RTSP/RTMP/FLV/HLS 支持海康宇視天地 SDK 接入-視頻廣場頁面集成與視頻播放說明

LiveNVR直播流拉轉&#xff1a;Onvif/RTSP/RTMP/FLV/HLS支持海康宇視天地SDK接入-視頻廣場頁面集成與視頻播放說明 一、視頻頁面集成1.1 關閉接口鑒權1.2 視頻廣場頁面集成1.2.1 隱藏菜單欄1.2.2 隱藏播放頁面分享鏈接 1.3 其它頁面集成 二、播放分享頁面集成2.1 獲取 iframe 代…

12. CSS 布局與樣式技巧

在前端開發中&#xff0c;CSS 是控制頁面樣式和布局的核心技術。本文總結了 CSS 布局中的關鍵概念和實用技巧&#xff0c;包括 overflow 屬性、背景圖片處理、精靈圖技術、display 屬性、浮動布局以及清除浮動的方法。 一、overflow 屬性詳解 overflow 屬性用于控制當元素內容…

OpenCV---Canny邊緣檢測

一、基本概念與核心作用 Canny邊緣檢測是計算機視覺中最經典的邊緣檢測算法之一&#xff0c;由John Canny于1986年提出。其核心目標是在噪聲圖像中提取精確、單像素寬、連續的邊緣&#xff0c;廣泛應用于&#xff1a; 目標檢測預處理&#xff08;如Robomaster中燈條、裝甲板的…

提效-點擊跳轉到源碼

1、localhost項目 例如【鯨島】這個中臺項目啟動地址是localhost。 使用chrome中的【click-to-react-component 】擴展&#xff0c; alt 鼠標左鍵 選擇dom后跳轉到對應文件。 click-to-react-component的原理&#xff08;來自ai&#xff09; click-to-react-component 的工作…

FeignClient發送https請求時的證書驗證原理分析

背景 微服務之間存在調用關系&#xff0c;且部署為 SSL 協議時&#xff0c;Feignt 請求報異常&#xff1a; Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali…

性能優化關鍵:link、script和meta的正確打開方式

link 標簽的主要屬性及其作用 屬性是否必填作用描述示例值rel是定義當前文檔與鏈接資源的關系&#xff08;必須屬性&#xff09;。常見值&#xff1a;stylesheet, icon, preload, preconnect 等。rel"stylesheet" rel"icon"href是指定鏈接資源的URL。href…