精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python編程:輕松掌握函數定義、類型及其參數傳遞方式

開發 前端
函數(function)是執行特定任務的語句塊,是允許程序員重用的部分代碼,其促進了軟件程序的模塊化概念。這種方法背后的主要思想是將一個大的代碼塊劃分為更小的獨立部分,也因此更易于管理的子塊。

前言

本文帶你輕松理解并掌握Python語言中的核心特性——函數:定義語法以及函數形式,并介紹函數的參數傳遞的兩種方式。

函數含義

函數(function)是執行特定任務的語句塊,是允許程序員重用的部分代碼,其促進了軟件程序的模塊化概念。這種方法背后的主要思想是將一個大的代碼塊劃分為更小的獨立部分,也因此更易于管理的子塊。Python中有兩種類型的函數:

內置函數(Build-in):編程時可以在程序中直接使用這些函數而無需定義它們。這種類型的函數在一開的始學習中經常使用了(例如,print()、input()、sum()等)。

用戶定義函數(User-defined):Python允許程序員創建自己的函數。接下來將重點介紹這種特定的函數類型。

簡而言之,函數就是定義好的且可以重復調用的結構化語句塊。函數名稱唯一,可接收參數,并且根據需要返回給調用者相應的結果(值),或不返回值。

函數定義

在Python中定義函數的主要規則如下:

  • 函數塊以關鍵字def開始,后面跟著函數名和括號。注意,由于Python是區分大小寫的,所以必須使用def而不是Def。
  • 與變量名類似,函數名可以包含字母或數字,但不包含空格或特殊字符,且不能以數字開頭。
  • 可選的輸入參數(稱為arguments)應放在括號內——參數數量和類型根據需要來。
  • 函數名后跟冒號,通常函數中的語句塊從冒號后換行開始并縮進。
  • 返回數據的函數必須在其代碼塊中包含關鍵字return。

概括起來,有四種類型的函數:

  • 無參數無返回值型函數;
  • 有參數無返回值型函數;
  • 無參數有返回值型函數;
  • 有參數有返回值型函數。

函數定義的語法格式如下:

def functionName (var1, var2, … etc.):
Statements

根據實參的存在與否以及輸入和/或返回值的存在情況,函數可以分為上面的四種可能的類型。下面將分別介紹。

無參無返回值型函數

在這種類型中,函數不接受變量作為參數,也不返回任何數據。比如下面的腳本演示即為這種函數,它只在屏幕上打印預定義的字符串。

代碼顯而易見,定義中形參,調用時沒有實參,語句塊中也沒有return語句。該結構只是調用print()函數來顯示所需的消息。在主程序中調用這樣一個函數是一個相當簡單直接,如下所示:

# 定義一個既無參數也無返回值的函數
def printSomething():
print('Hello world')

# 在主程序中直接調用
printSomething()

運行程序后輸出結果為:

Hello world

有參無返回值型函數

另一種類型的函數接受變量作為參數,但不返回任何數據。在下面的示例中,通過聲明的名稱來調用函數,同時在所調用的函數括號中包含一些值。這些值被傳遞給函數的主體使用,可以被視為普通變量:

# 定義接收參數但無返回值的函數
def printMyName(fName, lName):
print('Your name is:', fName, lName)

# 提示用戶輸入姓名
firstName = input('Enter your first name: ')
lastName = input('Enter your last name: ')

# 在主程序中調用所定義的函數
printMyName(firstName, lastName)

運行程序,結果類似如下:

Enter your first name:Solo
Enter your last name: Cui
Your name is: Solo Cui

無參有返回值型函數

第三種類型為不接受參數但有返回數據的函數。重要的是要記住,因為這種類型的函數返回的一個值給調用代碼,這個值必須在被使用或處理之前賦值給一個變量。示例如下:

# 定義無參數但有返回值的函數
def returnFloatNumber():
inputFloat = float(input('輸入一個數字,其將返回給主程序:'))
return inputFloat

# 主程序調用函數并顯示輸入結果
x = returnFloatNumber()
print('輸入的數字為:', x)

運行程序結果類似如下:

輸入一個數字,其將返回給主程序: 5.7
輸入的數字為:: 5.7

 有參有返回值型函數

這種類型函數既接受參數,又將值返回給調用代碼。情況下面示例。在這種情況下,函數的調用必須包含一個參數列表,并將返回值賦給一個特定的變量以供以后使用:

# 有參有返回值函數
def calculateSum(number1, number2):
print('計算兩個數字和.')
return(number1 + number2)

# 接受用戶輸入的兩個數字
num1 = float(input('輸入第一個數字: '))
num2 = float(input('輸入第二個數字: '))

# 調用函數計算倆個數字和
addNumbers = calculateSum(num1, num2)

# 輸出兩個數字和
print('兩個數字和為:', addNumbers)

運行程序結果類似如下:

輸入第一個數字: 3
輸入第二個數字: 5
計算兩個數字和...
兩個數字和為:: 8.0

 函數參數傳遞方式

有兩種不同的方法用來給函數傳遞參數。確定選擇兩者的哪個方法應取決于原來變量的值是否可在函數內更改。將參數值傳遞給函數有兩種方法,通常被稱為按值調用/傳遞(call/pass by value)和按引用調用/傳遞(call/pass by reference)。

概要來說,函數參數傳遞:

其一,按值方式:參數是原始變量的副本,保持副本且不改變原始值;

其二,按引用方式:改變直接作用于原始變量,因此也就改變了原始值。

按值調用/傳遞

在這種情況下,實參(形參)的值作為原始變量的副本處理。因此,當程序控制返回給調用者時,調用者作用域中的原始變量將保持不變。

在Python中,如果將不可變參數(例如,整數和字符串)傳遞給函數,通常的做法是按值調用/傳遞參數。下面的示例通過介紹id()函數說明了這種情況。它接受一個對象作為參數(即id(object)),并返回這個特定對象的標識。Id()返回值是一個整數,它在對象的生命周期內是惟一的和永久的。如示例所示,在調用checkParamemterID函數之前,變量x的id為4564813232。需要注意的是,只要x的值沒有更新,x的id在函數中就不會改變。但是,一旦該值更新為20,其對應的id將更改為4564813552。需要注意的最重要的一點是,x的id在調用函數后不會改變,它的原始值保持不變(4564813232)。這意味著對x值的更改應用于變量的副本,而不是調用者作用域內的原始變量。

示例代碼如下:

#按值傳遞參數
# 定義函數'checkParameterID',帶參且按值傳遞
def checkParameterID(x):
print('在checkParameterID函數內x值改變之前其值為 ', x, '\n其id 為', id(x))
# 在函數范圍內改變參數x的值
x = 20
print('checkParameterID中x的值改變后為', x, '\n 其id為', id(x))

# 在主程序聲明變量x并賦予初始值
x = 10

print('調用checkParameterID函數之前x的值是', x, '\n 其id為', id(x))

# 調用'checkParameterID'函數
checkParameterID(x)

# 函數調用后在主程序中顯示關于'x'的信息
print('調用checkParameterID函數后x的值為', x, '\n 其id為', id(x))

運行輸出結果類似如下:

調用checkParameterID函數之前x的值是 10
其id為 2570870194704
在checkParameterID函數內x值改變之前其值為 10
其id 為 2570870194704
checkParameterID中x的值改變后為 20
其id為 2570870195024
調用checkParameterID函數后x的值為 10
其id為 2570870194704

按引用調用/傳遞

在這種情況下,函數獲取實參(即原始變量)的引用,而不是它的副本。如果函數內發生更改,則調用者作用域中原始變量的值也將被修改。在Python中,如果可變參數(如列表)傳遞給函數,則調用/傳遞是通過引用進行的。如下所示,updateList將值5追加到名為y的列表中。即原始可變變量x的值發生了變化,這證明函數按引用調用/傳遞參數的特征。示例代碼如下:

# 定義函數'upDateList' 其改變列表內的值
def updateList(y):
y = y.append(5)
return y

# 聲明列表'x' 有四個元素值
x = [1, 2, 3, 4]
print('在調用updateList函數之前,x的內容是:', x)

# 調用函數'updateList'
print('調用函數updateList')
updateList(x)
print('調用updateList函數后x的內容為:', x)

運行程序輸出結果類似如下:

在調用updateList函數之前,x的內容是: [1, 2, 3, 4]
調用函數updateList
調用updateList函數后x的內容為: [1, 2, 3, 4, 5]

本文小結

本期內容介紹了函數的基本內容和實現語法,以及參數傳遞、有無參數和返回值的函數形式以及函數調用/傳遞的實現。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2022-11-07 09:02:13

Python編程位置

2025-01-17 10:52:26

定義函數編程Python

2014-10-30 16:12:55

編程技術算法

2014-10-30 16:34:28

編程技術算法

2014-10-30 16:41:14

編程技術算法

2023-07-06 08:31:50

Python對象編程

2009-10-16 13:08:40

VB自定義類型參數

2023-11-17 14:10:08

C++函數

2024-01-17 06:23:35

SwiftTypeScript定義函數

2023-12-11 18:18:24

Python編程線程

2023-03-29 23:23:00

MyBatis參數框架

2025-04-02 12:00:00

開發日志記錄Python

2009-12-10 11:02:44

PHP函數eval()

2025-02-12 10:51:51

2020-09-24 10:57:12

編程函數式前端

2012-02-21 14:04:15

Java

2023-08-04 09:43:16

Socket編程Python

2023-11-23 12:47:03

C++函數參數

2024-06-12 00:00:01

Java函數式接口

2009-12-17 17:04:09

Ruby函數參數傳遞
點贊
收藏

51CTO技術棧公眾號

自拍偷拍国产精品| 一区二区三区精品视频在线观看| 欧美亚洲图片小说| 四虎一区二区| 伊人精品在线视频| 午夜精品毛片| 日韩精品一区二区三区在线| 免费拍拍拍网站| 国产影视一区二区| 欧美在线视屏| 日韩av中文字幕在线播放| 国产亚洲天堂网| 91社区在线高清| 韩国欧美一区二区| 欧美精品www| 男女黄床上色视频| 96视频在线观看欧美| 亚洲国产日韩a在线播放性色| 久久视频在线观看中文字幕| 一级特黄色大片| 国自产拍偷拍福利精品免费一| 精品亚洲一区二区三区在线观看 | 国产精品拍拍拍| av免费在线观| 成人国产电影网| 国产97免费视| 中文字幕在线观看成人| 亚洲va久久| 91精品国产日韩91久久久久久| 2019日韩中文字幕mv| 精品无人乱码| 国产福利一区二区三区视频在线| 91精品国产91久久久久久久久| eeuss中文字幕| 麻豆精品av| 91精品国产91久久综合桃花 | 伊人性伊人情综合网| 韩日午夜在线资源一区二区| 国产精华7777777| 99视频一区| 欧美日韩xxxxx| 熟女少妇一区二区三区| 日韩在线成人| 欧美日本在线一区| 久草精品在线播放| av蜜臀在线| 亚洲激情男女视频| 亚洲第一综合| 国产免费视频在线| 99国产精品99久久久久久| 国产精品丝袜一区二区三区| 成人毛片18女人毛片| 欧美淫片网站| www.日韩av.com| 国产一区二区三区四区在线| 人妖一区二区三区| 精品欧美黑人一区二区三区| 日日干夜夜操s8| 日韩网站中文字幕| 欧美性猛交xxxx乱大交| 97超碰在线人人| 最新日本在线观看| 亚洲男人的天堂在线观看| 亚洲欧美丝袜| 成人不用播放器| 国产人久久人人人人爽| 鲁丝一区鲁丝二区鲁丝三区| 蜜臀久久久久久999| 国产精品影视在线| 97久久夜色精品国产九色| 国产免费av电影| 看电视剧不卡顿的网站| 国产精品三级久久久久久电影| 久久久久久国产精品免费播放| 亚洲成av人电影| 久久九九国产精品怡红院| 国产精品视频在| 在线日韩一区| 国产亚洲欧洲黄色| 国产一区二区三区四区在线| 奇米影视亚洲| 久久精品中文字幕| 欧美黑人一级片| 欧美天堂亚洲电影院在线观看| 视频在线观看99| 伊人久久久久久久久久久久久久| 999视频精品| 日韩视频在线观看免费| 欧美视频www| 亚洲私拍自拍| 欧美一区二区色| 日韩欧美国产另类| 久久精品99国产国产精| 成人激情春色网| a级片在线播放| 成人免费毛片嘿嘿连载视频| 免费看污久久久| 国产精品一区在线看| 亚洲国产精品av| 天天综合五月天| 久草免费在线色站| 亚洲va欧美va天堂v国产综合| 国产91在线免费| av在线播放一区| 日韩一区二区三区视频在线| 精品视频站长推荐| 一区二区三区四区在线看 | 秋霞午夜在线观看| 一区二区久久久久久| 免费国产黄色网址| 国产精品亲子伦av一区二区三区| 日韩午夜三级在线| 大黑人交xxx极品hd| 91亚洲国产高清| 久久青草精品视频免费观看| 99久久久无码国产精品免费蜜柚| 久久中文欧美| 91久久偷偷做嫩草影院| 日本福利片在线| 日韩美女久久久| 内射国产内射夫妻免费频道| 水蜜桃在线视频| 91精品综合久久久久久| 人妻熟女aⅴ一区二区三区汇编| 日韩精品91| 69视频在线免费观看| 91theporn国产在线观看| 不卡视频一二三| 亚洲欧洲精品一区二区三区波多野1战4| 在线免费观看的av| 91黄色在线观看| 国产精九九网站漫画| 日韩黄色大片网站| 欧美一级视频免费在线观看| 国产露脸无套对白在线播放| 久久久不卡影院| 91精品国产毛片武则天| av亚洲一区二区三区| 亚洲精品在线观看视频| 少妇高潮一区二区三区喷水| 亚洲一区日韩| 国产精品一区视频| 搞黄网站在线观看| 欧美吞精做爰啪啪高潮| 人妻丰满熟妇av无码久久洗澡 | 国产精品99久久久久久似苏梦涵| 日本精品一区二区三区不卡无字幕| 98色花堂精品视频在线观看| 日韩一区二区免费在线观看| 国产精品20p| 国产一级久久| 好吊色欧美一区二区三区视频 | 国产69精品久久久久9| 国产免费久久久| 中文文精品字幕一区二区| 国产亚洲天堂网| 人人香蕉久久| 91av在线播放视频| 色一情一乱一区二区三区| 一区二区三区在线观看视频| 午夜国产一区二区三区| av中文一区| 国产精品91久久久久久| 囯产精品久久久久久| 亚洲巨乳在线| 国产精品夜色7777狼人| 成人三级黄色免费网站| 在线免费观看日本一区| 国产精品亚洲无码| 老司机午夜精品视频| 久久久久久精| 竹内纱里奈兽皇系列在线观看| 日韩亚洲欧美在线观看| a级黄色片免费看| 国产精品影视天天线| 国产一区二区三区播放| 欧洲大片精品免费永久看nba| 久久精品久久久久电影| 96日本xxxxxⅹxxx17| 中文字幕一区三区| 午夜一区二区视频| 最新国产精品久久久| 99九九电视剧免费观看| 福利在线导航136| 日韩电影第一页| 97人妻一区二区精品视频| 欧美国产精品中文字幕| 国内自拍第二页| 欧美fxxxxxx另类| 91色p视频在线| 女囚岛在线观看| 欧美精品一区男女天堂| 久久久久久久极品| 欧美国产亚洲另类动漫| 91国内在线播放| 午夜精品免费| 久久99久久精品国产| 亚洲第一会所| 伊人av综合网| 99国产精品一区二区三区| 亚洲香蕉伊在人在线观| 成人免费网站黄| 久久99久久精品欧美| 日韩视频一二三| 丝袜美腿综合| 99www免费人成精品| 黄色精品视频| 亚洲3p在线观看| 看女生喷水的网站在线观看| 亚洲美女激情视频| 国产91麻豆视频| 欧美日韩dvd在线观看| 亚洲AV无码成人精品区东京热| 亚洲欧美日韩电影| 在线免费观看视频| 99精品视频一区| 麻豆网站免费观看| 免费观看久久久4p| 男人揉女人奶房视频60分 | 精品视频在线观看网站| 国产成人啪精品视频免费网| xxx.xxx欧美| 久久亚洲私人国产精品va| 国产黄在线观看免费观看不卡| 欧美精品一区二区三区四区 | 日韩av网址在线观看| 国产特级aaaaaa大片| 欧美日韩一区高清| 一级做a爰片久久毛片| 亚洲国产成人tv| 天天综合天天做| 自拍偷拍欧美激情| 永久免费未视频| 国产精品看片你懂得| 99久久久无码国产精品衣服| 久久久久久久电影| 这里只有精品在线观看视频| 国产91在线观看| 亚洲av毛片在线观看| 狠狠色丁香久久婷婷综合丁香| 激情综合网俺也去| 爽好多水快深点欧美视频| 男人天堂999| 翔田千里一区二区| 浮妇高潮喷白浆视频| 中文国产一区| 国产深夜男女无套内射| 亚洲一区二区伦理| 欧美 日韩 激情| 亚洲尤物精选| 日韩av播放器| 秋霞av亚洲一区二区三| 一道本视频在线观看| 美女视频一区二区| 岛国毛片在线播放| 精品一区二区在线免费观看| 亚洲免费成人在线视频| 国产一区二区三区高清播放| 中文字幕在线播放一区二区| 丁香六月综合激情| 中文字幕在线播放一区| 91免费国产在线观看| 在线国产视频一区| 国产精品色婷婷| 久久免费看少妇高潮v片特黄| 亚洲精品免费看| 欧美日韩中文视频| 色综合久久久久| 中文字幕欧美色图| 日韩限制级电影在线观看| 男人天堂一区二区| 亚洲欧美色婷婷| 欧美边添边摸边做边爱免费| 欧美老女人性视频| 国产污视频在线播放| 国产精品久久久久高潮| 精品亚洲二区| 久久国产精品-国产精品| 国产传媒欧美日韩成人精品大片| 亚洲欧美日韩精品久久久 | 亚洲最好看的视频| 亚洲欧洲国产精品久久| 狠狠色综合网| 无码人妻丰满熟妇区毛片| 激情五月播播久久久精品| 一级黄色片毛片| 日本一区免费视频| 久久久久无码国产精品| 在线免费视频一区二区| 国产丝袜视频在线观看| 亚洲欧美国产一区二区三区| 欧美成人三区| 国产91精品久久久| 国产精品一区二区三区av | 亚洲日本激情| 在线观看国产一级片| 成人美女在线观看| 国产精品久久久视频| 亚洲午夜精品一区二区三区他趣| japanese国产在线观看| 精品电影一区二区三区| a视频网址在线观看| 97精品免费视频| 欧美少妇激情| 欧美激情www| 欧美日本二区| 手机av在线网| 久久美女艺术照精彩视频福利播放| 538任你躁在线精品视频网站| 日韩欧美国产中文字幕| 亚洲毛片欧洲毛片国产一品色| 亚洲一级黄色片| 欧美激情网站| 福利视频久久| 亚洲精品国产成人影院| 亚洲一二三区av| 337p粉嫩大胆色噜噜噜噜亚洲| 免费网站观看www在线观| 欧美日韩精品一区二区天天拍小说 | 日韩欧美中文一区| av电影在线播放高清免费观看| 91国内精品久久| 福利片一区二区| 国产一级不卡视频| 韩国女主播成人在线观看| 中文字幕人妻一区二区三区在线视频| 亚洲成人午夜电影| aaaa一级片| 久久精品视频在线| 四虎国产精品免费久久5151| 日韩av影视| 久久综合五月| 亚洲成人网在线播放| 欧美午夜美女看片| 天天摸夜夜添狠狠添婷婷| 久久久亚洲欧洲日产国码aⅴ| 视频在线亚洲| 国产激情片在线观看| 国产麻豆精品在线观看| 久久福利免费视频| 欧美二区乱c少妇| a天堂中文在线| 国产美女久久久| 久久综合av| 男人的天堂最新网址| 亚洲欧洲成人av每日更新| 国产偷人爽久久久久久老妇app | 国产传媒在线观看| 国产精品区一区二区三含羞草| 欧美成人高清| 午夜性福利视频| 亚洲国产一区二区在线播放| 亚洲第一成人av| 欧美国产第二页| 久久久久影视| 国产l精品国产亚洲区久久| 久久久欧美精品sm网站| 综合网在线观看| 在线播放国产一区二区三区| 精品国产黄a∨片高清在线| 日本精品国语自产拍在线观看| 免费不卡在线视频| 手机在线免费看毛片| 欧美精品一区二| 在线最新版中文在线| 日韩欧美视频一区二区| 精品一区二区三区在线播放 | 久久久夜夜夜| 中文字幕第24页| 欧美丰满嫩嫩电影| av影片在线| 午夜欧美性电影| 国产不卡免费视频| 国产精品一区二区三区四| 国产一区二区三区在线视频| 性欧美video另类hd尤物| 黄黄视频在线观看| 99久久精品免费看国产 | 日韩欧美色电影| 国产福利片在线观看| 亚洲成人第一| 国产成人在线视频免费播放| 天天做天天爱夜夜爽| 中文字幕在线观看日韩| 99精品国产高清一区二区麻豆| 凹凸国产熟女精品视频| 欧美激情一区二区| 亚洲精品国产精品国| 国产精品av在线| 在线观看的日韩av| 五月天免费网站| 日韩av中文字幕在线免费观看| 色婷婷成人网| 欧美日韩性生活片| 综合中文字幕亚洲| 欧洲视频在线免费观看| 成人性生交大片免费观看嘿嘿视频 | 亚洲国产欧美在线观看| 蜜臀av午夜一区二区三区| 亚洲精品日韩专区silk|