Python 程序設計講義(55):Python 的函數——函數的參數

Python 程序設計講義(55):Python 的函數——函數的參數

目錄

  • Python 程序設計講義(55):Python 的函數——函數的參數
    • 一、聲明形參
    • 二、傳遞實參(位置參數)
        • 1、在調用函數進行傳遞參數時,使用的實參要與形參的數量一致
        • 2、在調用函數進行傳遞參數時,實參與形參的順序要對應
        • 3、在調用函數進行傳遞參數時,實參與形參的數據類型要一致
    • 三、為形參設置默認值
    • 四、使用參數名稱傳遞實參(關鍵字參數)

在定義函數時,可以在函數名后面的括號中設置參數。設置參數之后,調用函數時可以對函數的參數賦予不同的數值,函數的每次調用執行結果就可能不同。

一、聲明形參

定義函數時,需要為函數聲明參數,該參數相當于函數語句塊中的變量,在函數內使用。定義函數時的參數常被稱為形式參數,簡稱形參。其所用是在調用函數時專門為函數傳遞對應的值。形參在函數名后面的括號中定義。

聲明形參的語法格式如下:

def 函數名(形參):函數體

當聲明的參數為多個時,就構成了形參列表,每個形參之間用逗號(,)分割。

語法格式如下:

def 函數名(形參1, 形參2, ...):函數體

例如:定義一個函數area(),函數的功能是求長方體的面積,長方體的長、寬、高作為函數的形參。

代碼如下:

def area(a,b,c):return a*b*c

二、傳遞實參(位置參數)

為函數聲明形參以后,就可以在調用函數時進行參數傳遞。調用函數時傳遞的參數稱為實際參數,簡稱實參。

傳遞實參相當于為形參賦值,調用函數時,傳遞實參,將實參值應用到函數中進行運算。

傳遞實參的語法格式如下:

函數名(實參)

如果實參有多個,實參之間用逗號隔開。

語法格式如下:

函數名(實參1, 實參2, ...)
1、在調用函數進行傳遞參數時,使用的實參要與形參的數量一致

例如:調用求長方體面積的函數area()

代碼如下:

def area(a,b,c):return a*b*c
s=area(1,2,3)
print(s)程序的運行結果為:
6

如果調用函數時實參與形參的個數不一致,會報如下錯誤:

def area(a,b,c):return a*b*c
s=area(1,2,3,4)
print(s)程序的運行結果為:
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 3, in <module>s=area(1,2,3,4)
TypeError: area() takes 3 positional arguments but 4 were given
2、在調用函數進行傳遞參數時,實參與形參的順序要對應

例如:

def addr(province,city):return province+cityprint(addr("河南省","新鄉市"))
print(addr("新鄉市","河南省"))#實參的順序不對程序的運行結果為:
河南省新鄉市
新鄉市河南省
3、在調用函數進行傳遞參數時,實參與形參的數據類型要一致

調用函數時,如果實參與形參的數據類型不一致,可能會出現異常。

例如:

def area(a,b):return a*bx=input('請輸入長方形的長度:')
y=input('請輸入長方形的長度:')
print(area(x,y))程序的運行結果為:
請輸入長方形的長度:20
請輸入長方形的長度:15
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 6, in <module>print(area(x,y))~~~~^^^^^File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 2, in areareturn a*b~^~
TypeError: can't multiply sequence by non-int of type 'str'

三、為形參設置默認值

在調用函數時,實參的數量必須和形參的數量一致,否則將拋出異常。為了避免因為實參和形參數量不一致而出現錯誤,可以在定義函數時,為形參指定默認值。

這樣,在調用函數時,如果沒有為指定默認值的形參傳遞實參,則函數會使用形參的默認值,從而避免出錯。

為形參設置默認值的語法格式如下:

def 函數名(形參1, 形參2, ... , 形參n=value)說明:
(1)形參n=value:表示為形參n指定默認值為value。
(2)在調用函數時,如果為形參n指定了實參,則把實參的值傳遞給形參n,如果沒有為形參n指定實參,則使用默認值value作為形參n的值。
(3)指定默認值的形參必須放在所有形參的最后。

例如:

def area(a=1, b=1):#為形參a,b指定默認值1return a*bprint(area())  #調用時沒有指定實參,在形參a和b的值都為1程序的運行結果為:
1

四、使用參數名稱傳遞實參(關鍵字參數)

在調用函數時,實參與形參的順序必須保持一致,否則得到的結果可能和預期的結果不相符。

為了避免因為實參和形參順序不一致導致的問題,用戶可以在調用函數時,使用形參名稱傳遞實參。

語法格式如下:

函數名(形參1=value, 形參2=value, ... , 形參n=value)

例如:

def addr(province,city):return province+cityprint(addr("河南省","新鄉市"))
print(addr(city="新鄉市",province="河南省"))程序的運行結果為:
河南省新鄉市
河南省新鄉市

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

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

相關文章

機器學習sklearn:支持向量機svm

概述&#xff1a;現在就只知道這個svm可以畫出決策邊界&#xff0c;對數據的劃分。簡單舉例就是&#xff1a;好的和壞的數據分開&#xff0c;中間的再驗證from sklearn.datasets import make_blobs from sklearn.svm import SVC import matplotlib.pyplot as plt import numpy …

Django ORM 詳解:從入門到進階,掌握數據庫操作的核心

在 Django 中&#xff0c;ORM&#xff08;Object Relational Mapping&#xff0c;對象關系映射&#xff09; 是框架的核心之一。它允許你使用 Python 代碼來操作數據庫&#xff0c;而無需編寫原始 SQL 語句。Django ORM 不僅簡化了數據庫操作&#xff0c;還提升了代碼的可讀性、…

mac中使用gvm install沒有效果

問題表現&#xff1a; mac使用了gvm install一直沒有效果&#xff08;添加代理也沒效果&#xff09;&#xff0c;效果如下圖所示&#xff0c;始終卡在downloading&#xff0c;但是gvm version是正常的解決辦法&#xff1a; 手動安裝go的版本&#xff08;版本號自行選擇&#xf…

【React】狀態管理

兩個狀態管理工具&#xff1a; dva 是一個基于 Redux 和 React Router 的數據流方案&#xff0c;它提供了對 Redux 和 React Router 的封裝&#xff0c;使得在使用 dva 時可以更方便地進行狀態管理和路由操作。React Redux是一個JavaScript狀態管理庫&#xff0c;它的核心包括s…

?CVPR2025 FreeUV:無真值 3D 人臉紋理重建框架

&#x1f4c4;論文題目&#xff1a;FreeUV: Ground-Truth-Free Realistic Facial UV Texture Recovery via Cross-Assembly Inference Strategy ??作者及機構&#xff1a;Xingchao Yang、Takafumi Taketomi、Yuki Endo、Yoshihiro Kanamori&#xff08;CyberAgent、Universit…

Google Chrome <140.0.7297.0 MediaStreamTrackImpl UAF漏洞

【高危】Google Chrome <140.0.7297.0 MediaStreamTrackImpl UAF漏洞 漏洞描述 Google Chrome 是美國谷歌&#xff08;Google&#xff09;公司的一款Web瀏覽器。 受影響版本中&#xff0c;當處理媒體流時&#xff0c;MediaStreamTrackImpl 組件在銷毀前&#xff0c;未能清…

在VSCode中定制C語言宏格式化

在編寫C語言代碼時,經常會遇到一些宏定義的問題,特別是當使用宏來簡化變量聲明時。假設你有一個宏定義如下: #define VAR(vartype, memclass) vartype VAR(float32, AUTOMATIC) var1; // 等同于 "float32 var1;"當你使用VSCode的Format Document</

LangChain4J入門:使用SpringBoot-start

這是連續的專欄內容 &#xff08;一&#xff09;提換依賴 將原有的 <!-- LangChain4j OpenAI 集成 --><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId></dependency> 換成 <!…

AR-Align-NN-2024

文章目錄An unsupervised multi-view contrastive learning framework with attention-based reranking strategy for entity alignment摘要1. 引言2. 相關工作2.1. 實體對齊2.2 對比學習中的數據增強3. 問題定義4. 方法論4.1 嵌入初始化4.2 圖譜數據增強4.3 多視圖對比學習4.4…

DeFi借貸協議深度解析:原理與Python實現

目錄 DeFi借貸協議深度解析:原理與Python實現 1. DeFi借貸協議概述 2. 核心數學原理 2.1 抵押率計算 2.2 健康因子 2.3 利率模型 3. 協議核心組件 3.1 資金池架構 3.2 狀態變量 4. 核心功能實現 4.1 存款功能 4.2 借款功能 4.3 利息計算與更新 5. 清算機制實現 5.1 清算邏輯 5…

信創及一次ORACLE到OB的信創遷移

信創及一次ORACLE到OB的信創遷移 1.信創是什么? 2.銀行信創要求:核心目標與挑戰 3.一次ORACLE到OceanBase(OB)的信創遷移方案 3.0.目標: 3.1.遷移評估OceanBase Migration Assessment (OMA) 3.2.數據對象遷移 3.3.數據遷移 3.4.OceanBase 導數工具 3.5.調用存儲過程跑批 3…

[Python] -進階理解10- 用 Python 實現簡易爬蟲框架

網絡爬蟲是自動抓取網頁并提取數據的程序。本篇文章將基于 Python,從請求、解析和數據流控制三個核心模塊出發,逐步構建一個簡易爬蟲框架,并輔以代碼示例與擴展建議,適合初學者快速掌握爬蟲架構設計。 一、爬蟲架構總覽 典型爬蟲框架包含以下模塊流程: Seed URLs:初始化…

oracle備庫主機斷電重啟后IO異常報錯

兩節點rac adg環境4個實例&#xff0c;節點1異常重啟后IO報錯 檢查控制文件為0字節&#xff0c;第一感覺是不是控制文件損壞了&#xff1f;但節點2說是沒有報錯&#xff0c;理論上如果控制文件壞了&#xff0c;庫應該掛掉了。 嘗試重啟另外一共adg實例&#xff0c;發現讀取其它…

簡單線性回歸模型原理推導(最小二乘法)和案例解析

線性回歸是一種用于建模自變量與因變量之間線性關系的統計方法&#xff0c;核心是通過最小化誤差平方和估計模型參數。以下從數學原理推導和案例兩方面詳細說明。 一、線性回歸模型的數學原理推導 1. 模型定義 線性回歸假設因變量 y 與自變量 x 存在線性關系&#xff0c;具體…

主成分分析法 PCA 是什么

主成分分析法 PCA 是什么 主成分分析法(Principal Component Analysis,簡稱PCA)是一種數據降維與特征提取方法,核心思想是通過線性變換將高維數據映射到低維空間,在盡可能保留原始數據“信息量”(即方差)的同時,減少數據維度,消除特征間的相關性。 主成分分析法(PC…

Elasticsearch太重?試試輕量、極速的Meilisearch

在構建現代化的應用時&#xff0c;“搜索”早已不再是錦上添花的功能&#xff0c;而是決定用戶留存體驗的關鍵一環。Meilisearch&#xff0c;作為一款專為速度、易用性與開發者體驗而生的開源搜索引擎&#xff0c;正受到越來越多開發者的青睞。 本文將介紹 Meilisearch 的核心…

車載通信架構 ---車內通信的汽車網絡安全

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

MySQL: with as與with RECURSIVE如何混合使用?

文章目錄一、with用法系列文章二、前言三、MySQL 普通CTE與遞歸CTE混合使用的嚴格規則四、解決方案4.1、方法1&#xff1a;嵌套查詢4.2、方法2&#xff1a;使用臨時表4.3、方法3&#xff1a;分開執行&#xff08;應用層處理&#xff09;本文主要探討mysql中with普通cte與遞歸ct…

腕管綜合征 : “鼠標手”| “數字時代工傷”,在我國視頻終端工作者中患病率達12%到15%。“

文章目錄 引言 I 預防“鼠標手” 肌腱的滑動 正中神經的滑動 II “鼠標手”是怎么發生的? 癥狀 “鼠標手”的高發人群 引言 “鼠標手”發展到晚期會對神經造成不可逆的損傷。 早期剛開始有癥狀,比如說輕微的麻木,持續的時間也不長,發作頻率也不高的情況下,我們可以通過像…

#C語言——刷題攻略:牛客編程入門訓練(三):輸出格式化、基本運算符

&#x1f31f;菜鳥主頁&#xff1a;晨非辰的主頁 &#x1f440;學習專欄&#xff1a;《C語言刷題合集》 &#x1f4aa;學習階段&#xff1a;C語言方向初學者 ?名言欣賞&#xff1a;"代碼行數決定你的下限&#xff0c;算法思維決定你的上限。" 目錄 1. 牛牛的空格分…