python中可以使用2**0。5表示根號二。
成都網站制作、網站設計的關注點不是能為您做些什么網站,而是怎么做網站,有沒有做好網站,給成都創新互聯一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。
python中表示根號二的方法有許多,比如使用math模塊、使用內置函數pow或使用數學表達式。使用雙星號表達根號二屬于數學表達式。這種方式需要用戶輸入一個數字,并使用指數運算符**來計算該數的平方根。而輸入的代碼一般以num**0。5來表示根號數。
Python中星號可以對修飾的變量進行拆分,對修飾的形式參數進行參數聚集。單星號將被修飾的變量按元素方式拆分,對修飾的形式參數進行參數聚集。雙星號將被修飾的變量按鍵值對進行拆分,對修飾的形式參數進行參數聚集。
Python函數的參數類型主要包括必選參數、可選參數、可變參數、位置參數和關鍵字參數,本文介紹一下他們的定義以及可變數據類型參數傳遞需要注意的地方。
必選參數(Required arguments)是必須輸入的參數,比如下面的代碼,必須輸入2個參數,否則就會報錯:
其實上面例子中的參數 num1和num2也屬于關鍵字參數,比如可以通過如下方式調用:
執行結果:
可選參數(Optional arguments)可以不用傳入函數,有一個默認值,如果沒有傳入會使用默認值,不會報錯。
位置參數(positional arguments)根據其在函數定義中的位置調用,下面是pow()函數的幫助信息:
x,y,z三個參數的的順序是固定的,并且不能使用關鍵字:
輸出:
在上面的pow()函數幫助信息中可以看到位置參數后面加了一個反斜杠 / ,這是python內置函數的語法定義,Python開發人員不能在python3.8版本之前的代碼中使用此語法。但python3.0到3.7版本可以使用如下方式定義位置參數:
星號前面的參數為位置參數或者關鍵字參數,星號后面是強制關鍵字參數,具體介紹見強制關鍵字參數。
python3.8版本引入了強制位置參數(Positional-Only Parameters),也就是我們可以使用反斜杠 / 語法來定義位置參數了,可以寫成如下形式:
來看下面的例子:
python3.8運行:
不能使用關鍵字參數形式賦值了。
可變參數 (varargs argument) 就是傳入的參數個數是可變的,可以是0-n個,使用星號( * )將輸入參數自動組裝為一個元組(tuple):
執行結果:
關鍵字參數(keyword argument)允許將任意個含參數名的參數導入到python函數中,使用雙星號( ** ),在函數內部自動組裝為一個字典。
執行結果:
上面介紹的參數可以混合使用:
結果:
注意:由于傳入的參數個數不定,所以當與普通參數一同使用時,必須把帶星號的參數放在最后。
強制關鍵字參數(Keyword-Only Arguments)是python3引入的特性,可參考:。 使用一個星號隔開:
在位置參數一節介紹過星號前面的參數可以是位置參數和關鍵字參數。星號后面的參數都是強制關鍵字參數,必須以指定參數名的方式傳參,如果強制關鍵字參數沒有設置默認參數,調用函數時必須傳參。
執行結果:
也可以在可變參數后面命名關鍵字參數,這樣就不需要星號分隔符了:
執行結果:
在Python對象及內存管理機制中介紹了python中的參數傳遞屬于對象的 引用傳遞 (pass by object reference),在編寫函數的時候需要特別注意。
先來看個例子:
執行結果:
l1 和 l2指向相同的地址,由于列表可變,l1改變時,l2也跟著變了。
接著看下面的例子:
結果:
l1沒有變化!為什么不是[1, 2, 3, 4]呢?
l = l + [4]表示創建一個“末尾加入元素 4“的新列表,并讓 l 指向這個新的對象,l1沒有進行任何操作,因此 l1 的值不變。如果要改變l1的值,需要加一個返回值:
結果:
下面的代碼執行結果又是什么呢?
執行結果:
和第一個例子一樣,l1 和 l2指向相同的地址,所以會一起改變。這個問題怎么解決呢?
可以使用下面的方式:
也可以使用淺拷貝或者深度拷貝,具體使用方法可參考Python對象及內存管理機制。這個問題在Python編程時需要特別注意。
本文主要介紹了python函數的幾種參數類型:必選參數、可選參數、可變參數、位置參數、強制位置參數、關鍵字參數、強制關鍵字參數,注意他們不是完全獨立的,比如必選參數、可選參數也可以是關鍵字參數,位置參數可以是必選參數或者可選參數。
另外,python中的參數傳遞屬于對象的 引用傳遞 ,在對可變數據類型進行參數傳遞時需要特別注意,如有必要,使用python的拷貝方法。
參考文檔:
--THE END--
用在函數定義里,numbers捕獲了所有的位置參數(非keyword參數),keywords捕獲了所有的keywords參數。
例子:
def f(*args, **kwargs):
. . . print type(args), args
. . . print type(kwargs), kwargs
. . .
f(1,2, a=3)
type 'tuple' (1, 2)
type 'dict' {'a': 3}
而如果是用在函數調用里,如
s = total(*numbers, **keywords)
則numbers會依次展開作為total的位置參數,而keywords則會按key=value展開作為total的keyword參數。
例如,上面例子里的f(1,2, a=3)也可以這樣寫:
f(*[1,2], **{'a', 3})
會輸出同樣的結果
一:數學運算符,*表示乘法,**表示取冪,如:
二:用在變量的前面。
1,向函數傳遞參數,將變量中可迭代對象的元素拆解出來,作為獨立的參數第傳給函數,如:
雙引號(**),變量為字典,將其拆解出來,單獨傳給函數。如:
2,在函數定義中使用,收集參數。將參數捕捉到一個元組中,如:
該用法允許我們創建自己的函數時,可以接收任意數量的參數。
雙星號可以將參數捕捉到字典中,如:
當前題目:python函數后兩星號 python中兩個星號計算
本文路徑:http://m.newbst.com/article24/hjhsje.html
成都網站建設公司_創新互聯,為您提供建站公司、定制開發、ChatGPT、用戶體驗、、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯