python函數(一)

      網友投稿 977 2025-03-31

      #函數基本應用,函數可以看做是語句的集合,通過函數調用來執行其包含的語句。函數可以返回一個計算結果,根據每次函數調用的參數


      #可以返回不同的計算結果,根據每次調用的參數,可以返回不同的計算結果。

      #Python利用函數提高代碼的重用率,減少了代碼冗余。

      #定義函數

      #Python使用def語句定義函數,基本格式如下:

      # def 函數名(參數表):

      # 函數語句

      # return 返回值

      #其中,參數和返回值都不是必須有的,python允許函數可以沒有參數,也沒有返回值。例如:

      def hello():

      print("python 你好")

      #調用函數;

      hello()

      #hello()函數沒有參數,也沒有返回值,通過print()打印一個字符串。下面的例子定義兩個參數,并用return語句返回兩個參數的和;

      #定義函數

      def add(a,b):

      return a+b

      #調用函數,并接受返回值;

      res=add(2,4)

      #打印輸出的結果 ;

      print(res)

      #函數調用

      #在python中,所有的語句都是實時執行的,不像cc++存在編譯過程。def也是一條可執行的語句,定義一個函數。所以函數的調用

      #必須在函數定義之后。

      #在python中,函數名也是一個變量,它引用return語句返回的值,沒有返回值,函數值為None。

      #定義函數

      def mul(a,b):

      return a*b

      #直接訪問函數名,可返回函數名的內存地址

      print(add)

      #如下是調用函數,并接受返回值,以及將函數名賦值給變量,然后使用變量進行調用。

      def div(a,b):

      return a/b

      #調用函數,并返回函數值;

      res=div(10,2)

      #打印結果;

      print("10/2=",res)

      python函數(一)

      #將函數名賦值給變量

      x=div

      #通過變量名來調用函數

      res=x(1,8)

      #打印結果;

      print(res)

      #函數參數,在定義函數的時候,參數中的各個參數成為形式參數,簡稱形參。調用函數時,參數表中提供的參數稱為實際參數。

      #在python中,變量保存的是對象的引用,類似C C++中的指針。實際傳遞給形參的就是將對象的引用賦值給形參。

      #多態是,面向對象的一個特點,指同一個行為針對不同對象會得到不同的結果。python中的變量無類型屬性,變量可引用各種不同

      #類型的對象。同一個函數,傳遞的實際參數不同時,可獲得不同的結果,提現了多態。

      #支持“+”運算的對象均可作為參數

      def add(a,b):

      return a+b

      res=add(1,2.5)

      print("數值相加:",res)

      res=add("abc","def")

      print("字符串相加:",res)

      res=add((1,2),(3,8))

      print("元祖合并,",res)

      res=add([1,2],[3,4])

      print("列表合并:",res)

      #這里的+屬于直接使用的方式,實現了多態。

      #參數賦值傳遞,通常函數調用時按參數的先后順序,將實際傳遞形參傳遞給形參。例如調用add(1,2.5)時,1傳遞給a

      #2.5傳遞給b。python允許以形參賦值的方式,指定將實參傳遞給形參。

      #定義函數

      def add(a,b):

      return a+b

      #通過賦值來傳遞參數

      res=add(a='ab',b='cd')

      print(res)

      #通過賦值來傳遞參數;

      res=add(b='ab',a='cd')

      print(res)

      #可以看出來,在采用參數賦值傳遞時,因為指明了接受實參的形參名稱,所以參數的先后順序已經無關緊要。參數賦值傳遞方式

      #成了關鍵字傳遞。

      #3.參數傳遞與共享引用

      #定義函數

      def f(x):

      x=100

      #定義變量,并將變量作為參數傳入函數;

      a=10

      f(a)

      #執行后顯示變量的值;

      print(a)

      #從結果可以看出,實際參數的值已經覆蓋了原來的值100.

      #4.小心使用可變參數,當參數是可變參對象時,如列表、字典等,若在函數中修改形參,因為是共享引用

      #通過實參也獲得修改后的對象。

      def f(a):

      #修改列表第一個值

      a[1]='abc'

      #定義列表對象;

      x=[1,2]

      #調用函數,傳遞列表對象的引用

      f(x)

      #變量x引用的列表對象在函數中被修改。

      print(x)

      #可見,可變參數可在函數中被修改,如果不希望在函數中的修改影響函數外的變量,應該注意避免可變參數被修改。

      #如果要避免列表在函數中被修改,可使用列表的拷貝作為實參。例如:

      def f(a):

      #修改列表中的第一個值;

      a[0]='abc'

      x=[1,2]

      #傳遞列表的拷貝

      # f(x[:])

      print(x)

      #如果不希望在函數中的修改影響函數外的變量,應避免可變參數被修改。如果要避免列表在函數中被修改,可使用列表的拷貝

      #作為實際參數。

      def f(a):

      #拷貝列表;

      a=a[:]

      #修改列表的拷貝;

      a[0]='abc'

      x=[15,2]

      #調用函數

      f(x)

      #結果顯示原列表不變

      print(x)

      #5.有默認值的參數;

      #在定義函數時,可以為參數設置一個默認值,調用函數時,如果未提供實際參數,則形參取默認值。例如:

      #定義函數;

      def add(a=9,b=-100):

      return a+b

      #傳遞指定參數;

      res=add(1,2)

      print(res)

      #形參b取默認值;

      res=add(1)

      print(res)

      res=add()

      print(res)

      Python 面向對象編程

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:革命性進步:定制家居行業軟件引領設計與制造革新
      下一篇:錯誤1723 office(錯誤1723windows)
      相關文章
      亚洲国产精品婷婷久久| 亚洲精品国产精品国自产观看 | 国产精品高清视亚洲精品| 国产精品亚洲а∨无码播放| 国产成人精品日本亚洲专区| 亚洲av永久无码一区二区三区| 亚洲国产精品免费观看| 亚洲Av无码一区二区二三区| 亚洲最新中文字幕| 亚洲精品在线电影| 亚洲电影在线免费观看| 亚洲综合无码一区二区三区| 亚洲精品综合久久中文字幕| 亚洲精品偷拍无码不卡av| 亚洲视频免费播放| 亚洲熟妇av一区| 亚洲一级高清在线中文字幕| 亚洲另类春色校园小说| 亚洲一区精彩视频| 亚洲国产欧洲综合997久久| 亚洲AV无码资源在线观看| 精品国产日韩亚洲一区91| 夜色阁亚洲一区二区三区 | 久久精品国产亚洲AV无码麻豆| 亚洲欧洲日韩不卡| 亚洲白嫩在线观看| 亚洲制服丝袜中文字幕| 亚洲日本在线电影| 狠狠综合亚洲综合亚洲色| 亚洲高清最新av网站| 亚洲国产成人影院播放| 亚洲综合另类小说色区色噜噜| 亚洲无线码一区二区三区| 久久噜噜噜久久亚洲va久| 337p欧洲亚洲大胆艺术| 亚洲人成在线播放| 亚洲综合av一区二区三区不卡| 亚洲av无码一区二区三区人妖| 亚洲?V乱码久久精品蜜桃| 久久亚洲AV无码西西人体| 亚洲AV无码国产在丝袜线观看|