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

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

了解Python調用函數

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

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

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

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

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

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

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

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

NameError: name 'plus' is not defined  

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

二、正確使用參數

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

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

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

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

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

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

12  

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

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

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

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

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

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

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

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

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

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

無結果

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

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

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

運行結果:5Y928資訊網——每日最新資訊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。5Y928資訊網——每日最新資訊28at.com

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

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

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

1

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

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

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

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

2  1  

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

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

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

運行結果:5Y928資訊網——每日最新資訊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。5Y928資訊網——每日最新資訊28at.com

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

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

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

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

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

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 松原市| 隆德县| 奉新县| 尼勒克县| 涟水县| 来安县| 满洲里市| 巴塘县| 米易县| 珲春市| 怀来县| 靖边县| 利津县| 澄江县| 临泉县| 鄄城县| 凤台县| 天门市| 乌苏市| 平乡县| 溧水县| 高邮市| 台前县| 连州市| 宣威市| 阳西县| 新丰县| 定边县| 理塘县| 重庆市| 博爱县| 驻马店市| 霞浦县| 靖安县| 滨海县| 花莲县| 绥阳县| 宁化县| 临桂县| 丰台区| 云浮市|