導航:首頁 > 編程語言 > python傳值是什麼意思

python傳值是什麼意思

發布時間:2024-10-17 09:13:57

⑴ 在python函數里,不用return,怎麼把值送出來

題主好. 如果不用 return, 我們可以選擇利用傳遞參數的引用來『把值送出來』, 但這樣只能針對不變對象, 如字典, 列表, numpy 數組等等. 例如我們可以用如下代碼修改 numpy 數組:

mat = numpy.zeros((3,3))

compute_matrix( mat )

我們可以定義函數 compute_matrix 來修改參數 mat 的值, 並在這個函數結束後返回, 可以不用 return.


附錄:

python 參數傳遞 (傳值或傳引用). 這篇博文將 python 中參數傳遞的情況, 什麼時候傳值什麼時候傳引用, 解釋地很清楚, 具體地:

⑵ Python如何向函數傳遞參數

s=[3,2,5,1]
sorted(s,reverse=True)
默認reverse=False,排序為正序。傳入reverse=True,排序就是倒序

⑶ Python中不定長參數這樣用對嗎def hh(w,**l,pu='d'): 為什麼

題主你好,

一般來說, python函數中有兩種形式的參數: 位置參數, 關鍵字參數.

位置參數: 說白了就是在函數調用時必傳的,你不給它賦值函數就運行不了.如:

按照之前講的,調用person時,age必須要傳值,name可傳可不傳,所以調用形式可以是:

person(18), 也可以是person(18,"李四") //同時把參數名加上進行調用也可以,即person(age=18,"李四"), person(age=18, name="李四"), person(18,name="李四")這都是合法的,當然如果看著亂,記住一種就好.

**.還有一點需要注意函數定義中,位置參數一定要位於關鍵字參數前,也就是說def person(name="張三",age)這么寫是錯誤的(對於這條約定我是這么理解的, 你想啊假如位置參數位於關鍵字參數前是可行的,則我們在調用person時,即使name就是默認值"張三",我們也要傳值, 因為如果你這么寫,person(18),則18會傳給person的第一個參數name,如果你寫person("張三",18)又麻煩了,因為name的默認值就是"張三', 但我覺得使用person(age=18)還可以理解呀,不管怎麼樣吧,記住規矩就是這樣的.).

-----

下面就該引出題主問題中所謂的"不定長參數"了. 我感覺叫"任意數量的參數"更好理解一些,因為重點在於數量,而不在於長度.//至少如果我沒有看到你的實際題目,你說"不定長參數"我會理解為一個參數的值的長度不限, 而非可以有任意多個參數.

為了迎合題主, 下面就稱"不定長參數"吧.

python中一般不定長參數有兩種類型,位置不定長參數關鍵字不定長參數, 其外在特徵是:

位置不定長參數由一個星號+變數名組成: *var //var是我隨意寫的,可以是*a,*b,*any等

關鍵字不定長參數由兩個星號+變數名組成: **key //同理,key也可以是任意名稱.

-----

不定長參數的出現其實就是為了增加函數的靈活性, 這個靈活性就體現在"可以表示任意多個參數位置參數和或關鍵字參數".

-----

最後再說回題主的問題:

def hh(w,**l,pu='d')

這個用法不對, pu='d'要放在**l前面,我說下原因:

先看一下hh這個函數中的參數類型有兩種, w是位置參數; **l和pu='d'是關鍵字參數.

因此w放在最前面沒毛病(位置參數要位於關鍵字參數前面), 而為什麼pu='d'要放在**l前面呢,因為**l表示所有的關鍵字參數都要傳給l,所以如果pu='d'寫在**l後面,則pu='d'就不起作用了,因此不能這樣寫.

=====

希望可以幫到題主, 歡迎追問.

⑷ Python 不同腳本之間傳值問題

看你的需求,應該是需要顯示def2被執行。只需要print "def2"就可以了。

你可能理解有些誤差,當py2被執行時,py1的模塊是被導入到py2中,所以對於py2來說,它與py1沒有什麼關系。只是把py1的功能拿來用。拿來後就屬於py2了。只在一個進程里執行,就象是py2自己的一樣。這就是PYTHON的特點。

另外順便說一下。如果你這樣循環執行。幾乎1秒鍾,系統的棧就滿了。很可能執行不下去了。

⑸ python 函數裡面 字典復制問題

如果是我,我會在函數裡面聲明b是global的,而不是用似是而非的傳值傳指針,你這樣寫是想說b_hash傳遞的是指針,可惜python里一旦用「=」賦值就已經相當於聲明了一個新的變數,所以你的這個問題兩種解決辦法:

第一個,把你要傳指針的東西放到列表裡:

deftest(aa,bb):
bb[0]=.deep(aa)
a={1:1}
b=[{}]
test(a,b)
printb[0]

這樣保證你可以通過b這個名字找到改變後的指針。

第二個,在函數里聲明你要修改的是全局變數:

deftest(aa):
globalb
b=.deep(aa)
a={1:1}
b={}
test(a)
printb

當然,你還可以用既不是global也不是local的局部作用域,那可以說叫閉包,但有些不好懂就不說了。。。

樓上的方法思想和第一種一樣,但是沒做深層拷貝,一層for循環沒有遞歸實現了.,而不是.deep。。。

閱讀全文

與python傳值是什麼意思相關的資料

熱點內容
中信銀行還完貸款什麼時候給解壓 瀏覽:233
ug自學編程入門 瀏覽:612
英語口語900句pdf 瀏覽:565
javabyte拼接 瀏覽:481
加密應用在哪裡找vivo 瀏覽:290
python讀寫圖像 瀏覽:289
不是金山毒霸會員文件還能加密嗎 瀏覽:955
python網站開發教程 瀏覽:875
安卓超感畫質引擎是什麼意思 瀏覽:323
ug80編程穩定嗎 瀏覽:706
樂高ev3魔方機器人編程 瀏覽:891
文件夾120 瀏覽:753
怎麼判斷用幾個密鑰進行加密 瀏覽:433
學韓語哪個app最好 瀏覽:940
怎麼才能讓蘋果手機登安卓號 瀏覽:599
史上最強大腦演算法 瀏覽:327
java圖形識別演算法 瀏覽:971
安卓手機開機怎麼會出現圓圈 瀏覽:203
定常流體一定是不可壓縮流體嗎 瀏覽:508
java基本演算法 瀏覽:390