日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

了解Python調用函數

來源: 責編: 時間:2023-10-26 17:10:51 254觀看
導讀哈嘍,大家好,我是了不起。今天給大家帶來python調用函數。一、定義函數與調用函數的順序函數被定義后,本身是不會自動執行的,只有在被調用后,函數才會被執行,得到相應的結果。但是在 Python 中我們要注意一個關鍵點,就是Pyth

哈嘍,大家好,我是了不起。今天給大家帶來python調用函數。sD628資訊網——每日最新資訊28at.com

sD628資訊網——每日最新資訊28at.com

一、定義函數與調用函數的順序

函數被定義后,本身是不會自動執行的,只有在被調用后,函數才會被執行,得到相應的結果。但是在 Python 中我們要注意一個關鍵點,就是Python不允許前向引用,即在函數定義之前,不允許調用該函數。sD628資訊網——每日最新資訊28at.com

例如:sD628資訊網——每日最新資訊28at.com

print plus(1,2)def plus(a,b):      return a+b  

運行結果為:sD628資訊網——每日最新資訊28at.com

NameError: name 'plus' is not defined  

從報錯結果可以看出,名字為plus的函數還沒進行定義(雖然我們是在后面進行了定義)。所以當我們在調用函數時,一定要確定在調用之前進行了函數定義。sD628資訊網——每日最新資訊28at.com

二、正確使用參數

我們要在調用函數時,需要正確調用函數的名稱和參數,例如我們定義了一個加法函數:sD628資訊網——每日最新資訊28at.com

def plus(a,b):      return a+b  

我們在調用plus()函數時,如果傳入的參數類型不對,會報TypeError錯誤。而且有時我們傳入的參數類型不是規定類型的話,就算調用函數運行結果沒有報錯,也會產生邏輯錯誤。sD628資訊網——每日最新資訊28at.com

例如:sD628資訊網——每日最新資訊28at.com

# 定義plus函數,作用是求兩個正整數之和  def plus(a,b):      return a+b# 調用plus函數,參數類型為'1','2'  print(plus('1','2'))  

輸出結果:sD628資訊網——每日最新資訊28at.com

12  

雖然上述例子的程序運行結果沒有報錯,但是結果卻與我們的預期不符,因為我們的本意是調用plus()加粗樣式函數實現兩個整數的加法。但是如果我們傳入的是字符串類型的數值時,結果就是兩個字符串的拼接。所以這個例子告訴我們一定要注意傳入參數的類型。當我們傳入正常類型的參數時,傳入的參數個數不一致時,也會報TypeError錯誤。sD628資訊網——每日最新資訊28at.com

例如:sD628資訊網——每日最新資訊28at.com

# 定義plus函數,作用是求兩個正整數之和  def plus(a,b):      return a+b# 調用plus函數,參數為1,2,3  print(plus(1,2,3))  

報錯:sD628資訊網——每日最新資訊28at.com

TypeError: plus() takes 2 positional arguments but 3 were given  

報錯原因顯示,因為plus()函數允許有且僅有2個參數,但是卻在調用時傳入了3個參數,所以程序報錯。sD628資訊網——每日最新資訊28at.com

三、函數與函數之間的調用

1. 第一種情況 程序代碼如下:sD628資訊網——每日最新資訊28at.com

def x(f):      def y():          print(1)      return ydef f():      print(2)x(f)  

運行結果:sD628資訊網——每日最新資訊28at.com

無結果

分析:因為第9行中的x(f)中的f沒有帶括號,f只是一個普通的參數,所以程序只調用執行了x(f)函數,沒有調用執行f()函數。x(f)函數中雖然也定義了y()函數,但是x(f)函數中沒有調用執行y()函數,只是執行了return y。而y變量也沒有值,所以整個程序的返回值就為無結果。sD628資訊網——每日最新資訊28at.com

2. 第二種情況 程序代碼如下:sD628資訊網——每日最新資訊28at.com

def x(f):      def y():          print(1)      return ydef f():      print(2)x(f())  

運行結果:sD628資訊網——每日最新資訊28at.com

2  

分析:因為第9行中的x(f())中的f()帶括號,所以程序先調用執行f()函數,先輸出2。然后2作為參數傳入到x(f)函數中,程序開始調用執行x(f)函數。x(f)函數中雖然也定義了y()函數,但是x(f)函數中沒有調用執行y()函數,只是執行了return y。而y變量也沒有值,所以調用執行x(f)函數沒有產生任何結果。因此該程序最終只輸出了2。sD628資訊網——每日最新資訊28at.com

3. 第三種情況 程序代碼如下:sD628資訊網——每日最新資訊28at.com

def x(f):      def y():          print(1)      return y()def f():      print(2)x(f)  

運行結果:sD628資訊網——每日最新資訊28at.com

1

分析:因為第9行中的x(f)中的f沒有帶括號,f只是一個普通的參數,所以程序只調用執行了x(f)函數,沒有調用執行f()函數。x(f)函數中也定義了y()函數,并且返回是y()函數。因此程序調用執行了y()函數,輸出結果是1。sD628資訊網——每日最新資訊28at.com

4. 第四種情況sD628資訊網——每日最新資訊28at.com

def x(f):      def y():          print(1)      return y()def f():      print(2)x(f())

運行結果:sD628資訊網——每日最新資訊28at.com

2  1  

分析:因為第9行中的x(f())中的f()帶括號,所以程序調用執行了f()函數,先輸出2。然后2作為參數傳入到x(f)函數中,程序開始調用執行x(f)函數。x(f)函數中也定義了y()函數,并且返回是y()函數。因此程序也調用執行了y()函數,也輸出了1。最終該程序先后輸出了2和1。sD628資訊網——每日最新資訊28at.com

5. 第五種情況 程序代碼如下:sD628資訊網——每日最新資訊28at.com

def x(f):      def y():          print(1)          print(f())      return y()def f():      #print(2)      return 2x(f)  

運行結果:sD628資訊網——每日最新資訊28at.com

1  2  

分析:因為第9行中的x(f)中的f沒有帶括號,f只是一個普通的參數,所以程序只是先調用執行了x(f)函數。在x(f)函數中也定義了y()函數,而且返回值是y()函數,所以程序會調用執行y()函數。在y()函數中先是執行print(1)語句,輸出1,接著執行print(f())語句,所以程序在這時也會調用執行f()函數,輸出2。最終該程序先后輸出了1和2。sD628資訊網——每日最新資訊28at.com

好了,今天就介紹到這兒。sD628資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-15189-0.html了解Python調用函數

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 用Python實現答題卡識別!你學會了嗎?

下一篇: 一個不太好用的 IDEA 代碼生成插件

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 白城市| 理塘县| 乌拉特前旗| 上蔡县| 确山县| 岳阳县| 开阳县| 五峰| 鄂尔多斯市| 南宁市| 洞头县| 平阴县| 东乌珠穆沁旗| 娱乐| 永川市| 平山县| 濉溪县| 治县。| 兴海县| 榆树市| 临江市| 辽中县| 镶黄旗| 石台县| 衡南县| 双流县| 隆安县| 宁陵县| 宣城市| 顺平县| 曲沃县| 称多县| 西平县| 安塞县| 纳雍县| 黄山市| 安宁市| 克拉玛依市| 张家港市| 玛多县| 葫芦岛市|