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
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      python看函數(shù)參數(shù) python怎么看函數(shù)的參數(shù)

      Python函數(shù)的參數(shù)類型

      Python函數(shù)的參數(shù)類型主要包括必選參數(shù)、可選參數(shù)、可變參數(shù)、位置參數(shù)和關鍵字參數(shù),本文介紹一下他們的定義以及可變數(shù)據(jù)類型參數(shù)傳遞需要注意的地方。

      我們提供的服務有:成都網(wǎng)站制作、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、豐滿ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的豐滿網(wǎng)站制作公司

      必選參數(shù)(Required arguments)是必須輸入的參數(shù),比如下面的代碼,必須輸入2個參數(shù),否則就會報錯:

      其實上面例子中的參數(shù) num1和num2也屬于關鍵字參數(shù),比如可以通過如下方式調(diào)用:

      執(zhí)行結(jié)果:

      可選參數(shù)(Optional arguments)可以不用傳入函數(shù),有一個默認值,如果沒有傳入會使用默認值,不會報錯。

      位置參數(shù)(positional arguments)根據(jù)其在函數(shù)定義中的位置調(diào)用,下面是pow()函數(shù)的幫助信息:

      x,y,z三個參數(shù)的的順序是固定的,并且不能使用關鍵字:

      輸出:

      在上面的pow()函數(shù)幫助信息中可以看到位置參數(shù)后面加了一個反斜杠 / ,這是python內(nèi)置函數(shù)的語法定義,Python開發(fā)人員不能在python3.8版本之前的代碼中使用此語法。但python3.0到3.7版本可以使用如下方式定義位置參數(shù):

      星號前面的參數(shù)為位置參數(shù)或者關鍵字參數(shù),星號后面是強制關鍵字參數(shù),具體介紹見強制關鍵字參數(shù)。

      python3.8版本引入了強制位置參數(shù)(Positional-Only Parameters),也就是我們可以使用反斜杠 / 語法來定義位置參數(shù)了,可以寫成如下形式:

      來看下面的例子:

      python3.8運行:

      不能使用關鍵字參數(shù)形式賦值了。

      可變參數(shù) (varargs argument) 就是傳入的參數(shù)個數(shù)是可變的,可以是0-n個,使用星號( * )將輸入?yún)?shù)自動組裝為一個元組(tuple):

      執(zhí)行結(jié)果:

      關鍵字參數(shù)(keyword argument)允許將任意個含參數(shù)名的參數(shù)導入到python函數(shù)中,使用雙星號( ** ),在函數(shù)內(nèi)部自動組裝為一個字典。

      執(zhí)行結(jié)果:

      上面介紹的參數(shù)可以混合使用:

      結(jié)果:

      注意:由于傳入的參數(shù)個數(shù)不定,所以當與普通參數(shù)一同使用時,必須把帶星號的參數(shù)放在最后。

      強制關鍵字參數(shù)(Keyword-Only Arguments)是python3引入的特性,可參考:。 使用一個星號隔開:

      在位置參數(shù)一節(jié)介紹過星號前面的參數(shù)可以是位置參數(shù)和關鍵字參數(shù)。星號后面的參數(shù)都是強制關鍵字參數(shù),必須以指定參數(shù)名的方式傳參,如果強制關鍵字參數(shù)沒有設置默認參數(shù),調(diào)用函數(shù)時必須傳參。

      執(zhí)行結(jié)果:

      也可以在可變參數(shù)后面命名關鍵字參數(shù),這樣就不需要星號分隔符了:

      執(zhí)行結(jié)果:

      在Python對象及內(nèi)存管理機制中介紹了python中的參數(shù)傳遞屬于對象的 引用傳遞 (pass by object reference),在編寫函數(shù)的時候需要特別注意。

      先來看個例子:

      執(zhí)行結(jié)果:

      l1 和 l2指向相同的地址,由于列表可變,l1改變時,l2也跟著變了。

      接著看下面的例子:

      結(jié)果:

      l1沒有變化!為什么不是[1, 2, 3, 4]呢?

      l = l + [4]表示創(chuàng)建一個“末尾加入元素 4“的新列表,并讓 l 指向這個新的對象,l1沒有進行任何操作,因此 l1 的值不變。如果要改變l1的值,需要加一個返回值:

      結(jié)果:

      下面的代碼執(zhí)行結(jié)果又是什么呢?

      執(zhí)行結(jié)果:

      和第一個例子一樣,l1 和 l2指向相同的地址,所以會一起改變。這個問題怎么解決呢?

      可以使用下面的方式:

      也可以使用淺拷貝或者深度拷貝,具體使用方法可參考Python對象及內(nèi)存管理機制。這個問題在Python編程時需要特別注意。

      本文主要介紹了python函數(shù)的幾種參數(shù)類型:必選參數(shù)、可選參數(shù)、可變參數(shù)、位置參數(shù)、強制位置參數(shù)、關鍵字參數(shù)、強制關鍵字參數(shù),注意他們不是完全獨立的,比如必選參數(shù)、可選參數(shù)也可以是關鍵字參數(shù),位置參數(shù)可以是必選參數(shù)或者可選參數(shù)。

      另外,python中的參數(shù)傳遞屬于對象的 引用傳遞 ,在對可變數(shù)據(jù)類型進行參數(shù)傳遞時需要特別注意,如有必要,使用python的拷貝方法。

      參考文檔:

      --THE END--

      python 函數(shù)參數(shù)類型

      python 的函數(shù)參數(shù)類型分為4種:

      1.位置參數(shù):調(diào)用函數(shù)時根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù),位置參數(shù)也可以叫做必要參數(shù),函數(shù)調(diào)用時必須要傳的參數(shù)。

      當參數(shù)滿足函數(shù)必要參數(shù)傳參的條件,函數(shù)能夠正常執(zhí)行:

      add(1,2) #兩個參數(shù)的順序必須一一對應,且少一個參數(shù)都不可以

      當我們運行上面的程序,輸出:

      當函數(shù)需要兩個必要參數(shù),但是調(diào)用函數(shù)只給了一個參數(shù)時,程序會拋出異常

      add(1)

      當我們運行上面的程序,輸出:

      當函數(shù)需要兩個必要參數(shù),但是調(diào)用函數(shù)只給了三個參數(shù)時,程序會拋出異常

      add(1,2,3)

      當我們運行上面的程序,輸出

      2.關鍵字參數(shù):用于函數(shù)調(diào)用,通過“鍵-值”形式加以指定。可以讓函數(shù)更加清晰、容易使用,同時也清除了參數(shù)的順序需求。

      add(1,2) # 這種方式傳參,必須按順序傳參:x對應1,y對應:2

      add(y=2,x=1) #以關健字方式傳入?yún)?shù)(可以不按順序)

      正確的調(diào)用方式

      add(x=1, y=2)

      add(y=2, x=1)

      add(1, y=2)

      以上調(diào)用方式都是允許的,能夠正常執(zhí)行

      錯誤的調(diào)用方式

      add(x=1, 2)

      add(y=2, 1)

      以上調(diào)用都會拋出SyntaxError 異常

      上面例子可以看出:有位置參數(shù)時,位置參數(shù)必須在關鍵字參數(shù)的前面,但關鍵字參數(shù)之間不存在先后順序的

      3.默認參數(shù):用于定義函數(shù),為參數(shù)提供默認值,調(diào)用函數(shù)時可傳可不傳該默認參數(shù)的值,所有位置參數(shù)必須出現(xiàn)在默認參數(shù)前,包括函數(shù)定義和調(diào)用,有多個默認參數(shù)時,調(diào)用的時候,既可以按順序提供默認參數(shù),也可以不按順序提供部分默認參數(shù)。當不按順序提供部分默認參數(shù)時,需要把參數(shù)名寫上

      默認參數(shù)的函數(shù)定義

      上面示例第一個是正確的定義位置參數(shù)的方式,第二個是錯誤的,因為位置參數(shù)在前,默認參數(shù)在后

      def add1(x=1,y) 的定義會拋出如下異常

      默認參數(shù)的函數(shù)調(diào)用

      注意:定義默認參數(shù)默認參數(shù)最好不要定義為可變對象,容易掉坑

      不可變對象:該對象所指向的內(nèi)存中的值不能被改變,int,string,float,tuple

      可變對象,該對象所指向的內(nèi)存中的值可以被改變,dict,list

      這里只要理解一下這個概念就行或者自行百度,后續(xù)會寫相關的專題文章講解

      舉一個簡單示例

      4.可變參數(shù)區(qū)別:定義函數(shù)時,有時候我們不確定調(diào)用的時候會多少個參數(shù),j就可以使用可變參數(shù)

      可變參數(shù)主要有兩類:

      *args: (positional argument) 允許任意數(shù)量的可選位置參數(shù)(參數(shù)),將被分配給一個元組, 參數(shù)名前帶*,args只是約定俗成的變量名,可以替換其他名稱

      **kwargs:(keyword argument) 允許任意數(shù)量的可選關鍵字參數(shù),,將被分配給一個字典,參數(shù)名前帶**,kwargs只是約定俗成的變量名,可以替換其他名稱

      *args 的用法

      args 是用來傳遞一個非鍵值對的可變數(shù)量的參數(shù)列表給函數(shù)

      語法是使用 符號的數(shù)量可變的參數(shù); 按照慣例,通常是使用arg這個單詞,args相當于一個變量名,可以自己定義的

      在上面的程序中,我們使用* args作為一個可變長度參數(shù)列表傳遞給add()函數(shù)。 在函數(shù)中,我們有一個循環(huán)實現(xiàn)傳遞的參數(shù)計算和輸出結(jié)果。

      還可以直接傳遞列表或者數(shù)組的方式傳遞參數(shù),以數(shù)組或者列表方式傳遞參數(shù)名前面加(*) 號

      理解* * kwargs

      **kwargs 允許你將不定長度的鍵值對, 作為參數(shù)傳遞給函數(shù),這些關鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個dict

      下篇詳細講解 *args, **kwargs 的參數(shù)傳遞和使用敬請關注

      Python的函數(shù)參數(shù)總結(jié)

      import math

      a = abs

      print(a(-1))

      n1 = 255

      print(str(hex(n1)))

      def my_abs(x):

      # 增加了參數(shù)的檢查

      if not isinstance(x, (int, float)):

      raise TypeError('bad operand type')

      if x = 0:

      return x

      else:

      return -x

      print(my_abs(-3))

      def nop():

      pass

      if n1 = 255:

      pass

      def move(x, y, step, angle=0):

      nx = x + step * math.cos(angle)

      ny = y - step * math.sin(angle)

      return nx, ny

      x, y = move(100, 100, 60, math.pi / 6)

      print(x, y)

      tup = move(100, 100, 60, math.pi / 6)

      print(tup)

      print(isinstance(tup, tuple))

      def quadratic(a, b, c):

      k = b * b - 4 * a * c

      # print(k)

      # print(math.sqrt(k))

      if k 0:

      print('This is no result!')

      return None

      elif k == 0:

      x1 = -(b / 2 * a)

      x2 = x1

      return x1, x2

      else:

      x1 = (-b + math.sqrt(k)) / (2 * a)

      x2 = (-b - math.sqrt(k)) / (2 * a)

      return x1, x2

      print(quadratic(2, 3, 1))

      def power(x, n=2):

      s = 1

      while n 0:

      n = n - 1

      s = s * x

      return s

      print(power(2))

      print(power(2, 3))

      def enroll(name, gender, age=8, city='BeiJing'):

      print('name:', name)

      print('gender:', gender)

      print('age:', age)

      print('city:', city)

      enroll('elder', 'F')

      enroll('android', 'B', 9)

      enroll('pythone', '6', city='AnShan')

      def add_end(L=[]):

      L.append('end')

      return L

      print(add_end())

      print(add_end())

      print(add_end())

      def add_end_none(L=None):

      if L is None:

      L = []

      L.append('END')

      return L

      print(add_end_none())

      print(add_end_none())

      print(add_end_none())

      def calc(*nums):

      sum = 0

      for n in nums:

      sum = sum + n * n

      return sum

      print(calc(1, 2, 3))

      print(calc())

      l = [1, 2, 3, 4]

      print(calc(*l))

      def foo(x, y):

      print('x is %s' % x)

      print('y is %s' % y)

      foo(1, 2)

      foo(y=1, x=2)

      def person(name, age, **kv):

      print('name:', name, 'age:', age, 'other:', kv)

      person('Elder', '8')

      person('Android', '9', city='BeiJing', Edu='人民大學')

      extra = {'city': 'Beijing', 'job': 'Engineer'}

      person('Jack', 24, **extra)

      def person2(name, age, *, city, job):

      print(name, age, city, job)

      person2('Pthon', 8, city='BeiJing', job='Android Engineer')

      def person3(name, age, *other, city='BeiJing', job='Android Engineer'):

      print(name, age, other, city, job)

      person3('Php', 18, 'test', 1, 2, 3)

      person3('Php2', 28, 'test', 1, 2, 3, city='ShangHai', job='Pyhton Engineer')

      def test2(a, b, c=0, *args, key=None, **kw):

      print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'key=', key, 'kw =', kw)

      test2(1, 2, 3, 'a', 'b', 'c', key='key', other='extra')

      args = (1, 2, 3, 4)

      kw = {'d': 99, 'x': '#'}

      test2(*args, **kw)

      python怎么查看函數(shù)參數(shù)?

      在開發(fā)中我們可以借助于相關插件或使用Python內(nèi)置函數(shù)"help()”來查看某個函數(shù)的參數(shù)說明,以查看內(nèi)置函數(shù)sorted()為例:

      函數(shù)參數(shù)包括:必選參數(shù)、默認參數(shù)、可選參數(shù)、關鍵字參數(shù)。

      1、默認參數(shù):放在必選參數(shù)之后,計算x平方的函數(shù):

      這樣的話每次計算不同冪函數(shù)都要重寫函數(shù),非常麻煩,可使用以下代碼計算:

      默認參數(shù)最大好處就是降低調(diào)用函數(shù)的難度。

      2、可變參數(shù):就是傳入的參數(shù)個數(shù)是可變的,可以是1個、2個到任意個,還可以是0個,在參數(shù)前面加上*就是可變參數(shù)。在函數(shù)內(nèi)部,參數(shù)numbers接收得到的是一個tuple,調(diào)用該函數(shù)時,可以傳入任意個參數(shù),包括0個參數(shù):

      也可以類似可變參數(shù),先組裝一個dict,然后,把該dict轉(zhuǎn)換為關鍵字參數(shù)傳進去:


      當前標題:python看函數(shù)參數(shù) python怎么看函數(shù)的參數(shù)
      分享地址:http://www.ef60e0e.cn/article/hepdgg.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>

        北宁市| 东乌| 富阳市| 壤塘县| 芦山县| 建始县| 大厂| 青浦区| 阿城市| 大足县| 通化县| 耿马| 嫩江县| 横山县| 繁昌县| 克什克腾旗| 青州市| 肃宁县| 广宁县| 凯里市| 苍溪县| 新营市| 新丰县| 海宁市| 嵊州市| 泸州市| 北票市| 定兴县| 兴安县| 恭城| 玉屏| 新安县| 兴国县| 涪陵区| 龙陵县| 陇川县| 焦作市| 孝义市| 田阳县| 安庆市| 姜堰市|