1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      python函數(shù)變量 Python函數(shù)變量為數(shù)組

      python函數(shù)中局部變量與全局變量遵守規(guī)則

      (1)簡(jiǎn)單數(shù)據(jù)類型變量無論是否與全局變量重名,僅在函數(shù)內(nèi)部創(chuàng)建和使用,函數(shù)退出后變量被釋放,如有全局同名變量,其值不變。

      成都創(chuàng)新互聯(lián)主營(yíng)鶴山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),鶴山h5成都微信小程序搭建,鶴山網(wǎng)站營(yíng)銷推廣歡迎鶴山等地區(qū)企業(yè)咨詢

      (2)簡(jiǎn)單數(shù)據(jù)類型變量在用global保留字聲明后,作為全局變量使用,函數(shù)退出后該變量保留且值被函數(shù)改變。

      (3)對(duì)于組合數(shù)據(jù)類型的全局變量,如果在函數(shù)內(nèi)部沒有被真實(shí)創(chuàng)建的同名變量,則函數(shù)內(nèi)部可以直接使用并修改全局變量的值。

      (4)如果函數(shù)內(nèi)部真實(shí)創(chuàng)建了組合數(shù)據(jù)類型變量,無論是否有同名全局變量,函數(shù)僅對(duì)局部變量進(jìn)行操作,函數(shù)退出后局部變量被釋放,全局變量值不變。

      *《python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)》.高等教育出版社

      Python其實(shí)很簡(jiǎn)單 第十二章 函數(shù)與變量的作用域

      在前面已經(jīng)多次提到函數(shù)這個(gè)概念,之所以沒有解釋什么是函數(shù),是因?yàn)槌绦蛑械暮瘮?shù)和數(shù)學(xué)中的函數(shù)差不多,如input()、range()等都是函數(shù),這些都是Python的標(biāo)準(zhǔn)函數(shù),直接使用就可以了。根據(jù)需要,用戶也可以自定義函數(shù)。

      12.1 函數(shù)

      函數(shù)的結(jié)構(gòu):

      def 函數(shù)名(參數(shù)):

      函數(shù)體

      return 返回值

      例如:數(shù)學(xué)中的函數(shù)f(x)=2x+5在Python中可以定義如下:

      def f(x):

      y=2*x+5

      return(y)

      如果x取值為3,可以使用如下語(yǔ)句調(diào)用函數(shù):

      f(3)

      下面給出完整的程序代碼:

      def f(x):

      y=2*x+5

      return(y)

      res=f(3)

      print(res)

      運(yùn)行結(jié)果:11

      如上例中的x是函數(shù)f(x)的參數(shù),有時(shí)也被稱為形式參數(shù)(簡(jiǎn)稱形參),在函數(shù)被調(diào)用時(shí),x被具體的值3替換y就是函數(shù)的返回值,這個(gè)值3也被稱為實(shí)際參數(shù)(簡(jiǎn)稱實(shí)參)。

      上例中的y是函數(shù)f(x)的返回值。并不是所有的函數(shù)都有參數(shù)和返回值。如下面的函數(shù):

      def func():

      print('此為無參數(shù)傳遞、無返回值的函數(shù)')

      func()

      輸出結(jié)果:此為無參數(shù)傳遞、無返回值的函數(shù)

      可以看出,該函數(shù)func()無參數(shù),故調(diào)用時(shí)不用賦給參數(shù)值。

      函數(shù)也可以有多個(gè)參數(shù),如f(x,y)=x2+y2,可用Python語(yǔ)言定義如下:

      def f(x,y):

      z=x**2+y**2

      return z

      print(f(2,3)) #調(diào)用函數(shù)f(x,y)

      輸出結(jié)果:13

      也可以通過直接給參數(shù)列表中的參數(shù)賦值的方法,為參數(shù)添加默認(rèn)值,如果用戶賦予參數(shù)值,則按照用戶賦值執(zhí)行,否則使用默認(rèn)值。例如:

      def f(x,y=3):

      z=x**2+y**2

      return z

      若調(diào)用時(shí)參數(shù)列表為(2,1),即x賦值為2,y賦值為1:

      print(f(2,1))

      輸出結(jié)果為:5

      若調(diào)用時(shí)參數(shù)列表為(2),即x賦值為2,y賦值省缺,則y使用默認(rèn)值:

      print(f(2))

      輸出結(jié)果為:13

      回調(diào)函數(shù),又稱函數(shù)回調(diào),是將函數(shù)作為另一函數(shù)的參數(shù)。

      例如:

      def func(fun,m,n):

      fun(m,n)

      def f_add(m,n):

      print('m+n=',m+n)

      def f_mult(m,n):

      print('m*n=',m*n)

      func(f_add,2,3)

      func(f_mult,2,3)

      輸出結(jié)果:

      m+n= 5

      m*n= 6

      在f_add(m,n)和f_mult(m,n)被定義前,func(fun,m,n)中的fun(m,n)就已經(jīng)調(diào)用了這兩個(gè)函數(shù),即“先調(diào)用后定義”,這也是回調(diào)函數(shù)的特點(diǎn)。

      如果無法預(yù)知參數(shù)的個(gè)數(shù),可以在參數(shù)前面加上*號(hào),這種參數(shù)實(shí)際上對(duì)應(yīng)元組類型。譬如,參會(huì)的人數(shù)事先不能確定,只能根據(jù)與會(huì)人員名單輸入:

      def func(*names):

      print('今天與會(huì)人員有:')

      for name in names:

      print(name)

      func('張小兵','陳曉梅','李大海','王長(zhǎng)江')

      運(yùn)行后,輸出結(jié)果為:

      今天與會(huì)人員有:

      張小兵

      陳曉梅

      李大海

      王長(zhǎng)江

      參數(shù)為字典類型,需要在參數(shù)前面加上**號(hào)。

      def func(**kwargs):

      for i in kwargs:

      print(i,kwargs[i])

      func(a='a1',b='b1',c='c1')

      輸出結(jié)果為:

      a a1

      b b1

      c c1

      一個(gè)有趣的實(shí)例:

      def func(x,y,z,*args,**kwargs):

      print(x,y,z)

      print(args)

      print(kwargs)

      func('a','b','c','Python','is easy',py='python',j='java',ph='php')

      輸出結(jié)果:

      a b c # 前三個(gè)實(shí)參賦給前三個(gè)形參

      ('Python', 'is easy') # *args接收元組數(shù)據(jù)

      {'py': 'python', 'j': 'java', 'ph': 'php'} # **kwargs接收字典數(shù)據(jù)

      12.2 變量的作用域

      變量的作用域即變量的有效范圍,可分為全局變量和局部變量。

      局部變量

      在函數(shù)中定義的變量就是局部變量,局部變量的作用域僅限于函數(shù)內(nèi)部使用。

      全局變量

      在主程序中定義的變量就是全局變量,但在函數(shù)中用關(guān)鍵字global修飾的變量也可以當(dāng)做全局變量來使用。

      全局變量的作用域是整個(gè)程序,也就是說,全局變量可以在整個(gè)程序中可以訪問。

      下面通過實(shí)例去討論:

      程序1:

      a=1 # a為全局變量

      def a_add():

      print('a的初值:',a) # 在函數(shù)中讀取a的值

      a_add() # 調(diào)用函數(shù)a_add()

      a+=1 # 主程序語(yǔ)句,a增加1

      print('a現(xiàn)在的值是:',a) # 主程序語(yǔ)句,讀取a的值

      運(yùn)行結(jié)果:

      a的初值: 1

      a現(xiàn)在的值是: 2

      這個(gè)結(jié)果和我們想象的一樣,全局變量a既可以在主程序中讀取,也可以在子程序(函數(shù))中讀取。

      程序2:

      a=1

      def a_add():

      a+=1

      print('a的初值:',a)

      a_add()

      print('a現(xiàn)在的值是:',a)

      運(yùn)行程序1時(shí)出現(xiàn)如下錯(cuò)誤提示:

      UnboundLocalError: local variable 'a' referenced before assignment

      意思是:局部變量'a'在賦值之前被引用。

      從語(yǔ)法上來講,該程序沒有錯(cuò)誤。首先定義了一個(gè)全局變量a并賦值為1,又定義了一個(gè)函數(shù)a_add(),函數(shù)內(nèi)的語(yǔ)句a+=1就是出錯(cuò)的根源,雖然我們的初衷是想讓全局變量a的值增加1,但從錯(cuò)誤提示看,這個(gè)語(yǔ)句中的a并不是全局變量,而是局部變量。看來,在函數(shù)中讀取全局變量的值是沒有問題的(在程序1中已經(jīng)得到了驗(yàn)證),但要在函數(shù)中改變?nèi)肿兞康闹凳遣恍械模ㄔ诔绦?的錯(cuò)誤提示a+=1中的a 是局部變量,而非全局變量)。

      怎樣解決這個(gè)問題?

      程序3:

      a=1

      def a_add(x):

      x+=1

      return x

      print('a的初值:',a)

      a=a_add(a)

      print('a現(xiàn)在的值是:',a)

      運(yùn)行結(jié)果:

      a的初值: 1

      a現(xiàn)在的值是: 2

      結(jié)果的確是正確的,但在函數(shù)a_add(x)中沒有調(diào)用變量a(沒有出現(xiàn)變量a)。

      程序4:

      a=1

      def a_add(a):

      a+=1

      return a

      print('a的初值:',a)

      a=a_add(a)

      print('a現(xiàn)在的值是:',a)

      運(yùn)行結(jié)果:

      a的初值: 1

      a現(xiàn)在的值是: 2

      對(duì)比程序4和程序3不難發(fā)現(xiàn),其實(shí)程序4只是簡(jiǎn)單的把函數(shù)的參數(shù)x變成了a,這個(gè)a的實(shí)質(zhì)和程序3中的x還是一樣的。這進(jìn)一步證實(shí),函數(shù)中的a是局部變量,與主程序的全局變量a有著本質(zhì)的區(qū)別。

      程序5:

      a=1

      def a_add():

      global a

      a+=1

      print('a的初值:',a)

      a_add()

      print('a現(xiàn)在的值是:',a)

      運(yùn)行結(jié)果:

      a的初值: 1

      a現(xiàn)在的值是: 2

      程序5和程序2相比較,僅僅是在函數(shù)中添加了一個(gè)定義“global a”,此時(shí)的局部變量a就可以當(dāng)做全局變量使用,由于它和全局變量a同名,自然也就不用區(qū)分a究竟是全局變量還是局部變量了,在主程序和該函數(shù)內(nèi)都可以訪問、修改變量a的值了。

      雖然使用global可使變量使用起來非常方便,但也容易引起混淆,故在使用過程中還是謹(jǐn)慎為好。

      12.3 函數(shù)的遞歸與嵌套

      遞歸,就是函數(shù)調(diào)用它自身。遞歸必須設(shè)置停止條件,否則函數(shù)將無法終止,形成死循環(huán)。

      以計(jì)算階乘為例:

      def func(n):

      if n==1:

      return 1

      else:

      return n*func(n-1) #func( )調(diào)用func( )

      print(func(5))

      運(yùn)行結(jié)果為:120

      嵌套,指在函數(shù)中調(diào)用另外的函數(shù)。這是程序中常見的一種結(jié)構(gòu),在此不再贅述。

      匿名函數(shù)

      Python中可以在參數(shù)前加上關(guān)鍵字lambda定義一個(gè)匿名函數(shù),這樣的函數(shù)一般都屬于“一次性”的。

      例如:

      程序1:這是一個(gè)常規(guī)的函數(shù)定義和調(diào)用。

      def f_add(x,y):

      return x+y

      print(f_add(2,3))

      輸出結(jié)果:5

      程序2:使用lambda定義匿名函數(shù)。

      f_add=lambda x,y:x+y

      print(f_add(2,3))

      輸出結(jié)果:5

      從上面的代碼可以看出,使用lambda僅僅減少了一行代碼。f_add=lambda x,y:x+y中的f_add不是變量名,而是函數(shù)名。程序1和程序2的print( )語(yǔ)句中的參數(shù)都是一樣的——調(diào)用函數(shù)f_add( )。所以,匿名函數(shù)并沒有太多的優(yōu)點(diǎn)。

      python中函數(shù)中定義的變量只能在該函數(shù)題中起作用對(duì)嗎

      函數(shù)中定義的變量只能在函數(shù)體重起作用,Python在函數(shù)中定義的變量只能在該函數(shù)體中才可以起作用,只要出了這個(gè)函數(shù),那么其他的地方就無法訪問這個(gè)變量,因?yàn)樵撟兞康淖饔糜蛑辉谶@個(gè)函數(shù)中,所以只在本函數(shù)體內(nèi)有效。

      因?yàn)槎x了局部變量只能在其被聲明的函數(shù)內(nèi)部訪問,要想在程序的全域進(jìn)行訪問只能通過定義全局變量的方法進(jìn)行實(shí)現(xiàn),這些只要在程序控制范圍內(nèi)都可以調(diào)用。

      一般情況下變量就分為這兩大類,一類是全局變量,一類是局部變量。

      Python常用的控制語(yǔ)句:

      1、if語(yǔ)句,當(dāng)條件成立時(shí)運(yùn)行語(yǔ)句塊。經(jīng)常與else,elif(相當(dāng)于else if)配合使用、for語(yǔ)句,遍歷列表、字符串、字典、集合等迭代器,依次處理迭代器中的每個(gè)元素。

      2、while語(yǔ)句,當(dāng)條件為真時(shí),循環(huán)運(yùn)行語(yǔ)句塊、try語(yǔ)句,與except,finally配合使用處理在程序運(yùn)行中出現(xiàn)的異常情況、class語(yǔ)句,用于定義類型。

      3、def語(yǔ)句,用于定義函數(shù)和類型的方法、pass語(yǔ)句,表示此行為空,不運(yùn)行任何操作。

      4、from…?import語(yǔ)句,從包導(dǎo)入模塊或從模塊導(dǎo)入某個(gè)對(duì)象、import … as語(yǔ)句,將導(dǎo)入的對(duì)象賦值給一個(gè)變量、in語(yǔ)句,判斷一個(gè)對(duì)象是否在一個(gè)字符串、列表、元組里。

      Python代碼編寫注意:

      開發(fā)者有意讓違反了縮進(jìn)規(guī)則的程序不能通過編譯,所以在進(jìn)行Python代碼的書寫時(shí)一定要注意代碼的縮進(jìn)。

      以上內(nèi)容參考:百度百科-Python

      Python函數(shù)及變量的定義和使用

      def 函數(shù)名():? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

      ? ?函數(shù)體? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

      ? ?return? 返回值? ? ? ? ? ? ? ? ? ? ? ? ? ??

      def 函數(shù)名(非可選參數(shù),可選參數(shù)):

      ???函數(shù)體?

      return 返回值

      def 函數(shù)名(參數(shù),*b):

      ? ? 函數(shù)體

      ? ? return 返回值

      函數(shù)名 = lambda 參數(shù) : 表達(dá)式

      例1:f = lambda x , y? :? x + y? ? ? ? ? ? ? ? ? ? ? ??

      調(diào)用:f(6 + 8)? ? ?輸出:14? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

      例2:?f = lambda : "沒有參數(shù)的lambda函數(shù)!"

      調(diào)用:?print(f())? ? 輸出: 沒有參數(shù)的lambda函數(shù)!

      Python函數(shù)和模塊的定義與使用,包括變量的類型及匿名函數(shù)用法

      函數(shù)是組織好,可重復(fù)使用的,用來實(shí)現(xiàn)相關(guān)功能的代碼段

      函數(shù)提高了代碼的重復(fù)利用率和應(yīng)用的模塊性。

      除Python自帶的函數(shù)之外,也可以自己創(chuàng)建函數(shù),叫做自定義函數(shù)

      語(yǔ)法:

      函數(shù)代碼塊以 def 開頭

      參數(shù)為 輸入值 ,放于函數(shù)名后口號(hào)里面,

      函數(shù)內(nèi)容以冒號(hào):開始,函數(shù)體縮進(jìn), return 返回 輸出值

      函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來確定傳入的參數(shù)值,此時(shí),如果多個(gè)函數(shù)則不需要按照指定順序。

      在定義函數(shù)時(shí),指定參數(shù)默認(rèn)值。調(diào)用時(shí)如果不傳入?yún)?shù),則使用默認(rèn)值

      不定長(zhǎng)部分如果沒有指定參數(shù),傳入是一個(gè)空元組

      加了 兩個(gè)星號(hào) ** 的參數(shù)會(huì)以字典的形式導(dǎo)入

      / 用來指明函數(shù)形參必須使用指定位置參數(shù),不能使用關(guān)鍵字參數(shù)的形式。

      3.8版本之后的才能使用

      不使用 def 定義函數(shù),沒有函數(shù)名

      lamdba主體時(shí)一個(gè)表達(dá)式,而不是代碼塊,函數(shù)體比def簡(jiǎn)單很多

      定義在函數(shù)內(nèi)部的為局部變量,僅能在函數(shù)內(nèi)部使用

      定義在函數(shù)外部的為全局變量,可在全局使用

      模塊是將包含所有定義的函數(shù)和變量的文件,一般將同類功能的函數(shù)組和在一起稱為模塊。

      模塊需要導(dǎo)入后,在調(diào)用相應(yīng)函數(shù)進(jìn)行使用

      模塊導(dǎo)入的方法:

      從模塊中導(dǎo)入一個(gè)指定的部分

      把一個(gè)模塊的所有內(nèi)容全都導(dǎo)入


      網(wǎng)站題目:python函數(shù)變量 Python函數(shù)變量為數(shù)組
      轉(zhuǎn)載源于:http://www.ef60e0e.cn/article/hiisoh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        怀柔区| 镶黄旗| 金川县| 古田县| 军事| 洮南市| 句容市| 湘西| 哈尔滨市| 仙居县| 易门县| 巧家县| 潍坊市| 资中县| 长泰县| 松滋市| 凌云县| 扬州市| 涞源县| 廉江市| 乌兰浩特市| 两当县| 绥滨县| 炎陵县| 和田市| 曲松县| 灵宝市| 益阳市| 南昌市| 进贤县| 贺兰县| 托克逊县| 吴旗县| 青海省| 纳雍县| 定日县| 灵武市| 阿勒泰市| 绥中县| 东海县| 黄石市|