Python元組 賦值與返回值

2022-07-21 02:48:09 字數 1330 閱讀 9145

1.對兩個變數的值進行交換是一種常用操作;用常見語句來實現的話,就必須有乙個臨時變數。比如下面這個例子中是交換 a 和 b:

>>> t1 = ('a', 'b', 'c')

>>> temp = t1

>>> t2 = t1

>>> t1 = temp

這樣解決還是挺麻煩的;用元組賦值就更簡潔了:

>>> t1, t2 = t2, t1

上例中,等號左邊的是變數組成的乙個元組;右邊的是表示式的元組,每個值都被賦給了對應的變數;另外,等號右邊的表示式的值保留了賦值之前的初始值。

2.等號左右兩側的變數和值的數目都必須是一樣的,否則就會報錯賦值過多:

>>> t1, t2 = 1, 2, 3

traceback (most recent call last):

valueerror: too many values to unpack (expected 2)

3.等號右邊可以是任意一種序列(字串、列表或者元組)。比如,要把乙個電子郵件位址轉換成乙個使用者名稱和乙個網域名稱,可以用如下**實現:

>>> addr = '[email protected]'

>>> uname, domain = addr.split('@')

split 的返回值是乙個有兩個元素的列表;第乙個元素賦值給了 uname 這個變數,第二個賦值給了 domain 這個變數。

>>> uname

'mondy'

>>> domain

'163.com'

嚴格來說,乙個函式只能返回乙個值,但如果這個值是乙個元組,效果就和返回多個值一樣了。

1.例如,如果你想要將兩個整數相除,計算商和餘數,如果要分開計算 x/y 以及 x%y 就很麻煩了;而更好的辦法是同時計算這兩個值。

內建函式 divmod 就會接收兩個引數,然後返回乙個有兩個值的元組,這兩個值分別為商和餘數;如此,就可以把結果儲存為乙個元組:

>>> t = divmod(8, 5)

>>> t

(1, 3)

或者可以用元組賦值來分別儲存這兩個值:

>>> quot, rem = divmod(8, 5)

>>> quot

1>>> rem

32.下面的例子中,函式返回乙個元組作為返回值:

>>> def min_max(t):

>>> t = (10, 20, 30, 40)

>>> print(min_max(t))

(10, 40)

max 和 min 都是內建函式,會找到序列中的最小值或者最大值,min_max 這個函式會同時求得最小值和最大值,然後把這兩個值作為元組來返回。

結束。

c 賦值(賦值為函式返回值)語句的返回值問題

不知道為什麼,之前一直腦子裡有乙個誤解,賦值語句的返回值應該是1 成功賦值 或0 賦值失敗 今天其實在學linux的時候突然揣摩了一下 才發現這個問題 if dir opendir home ljz desktop null opendir返回空說明目錄開啟失敗 這句 裡面 null的判斷在 dir...

python 函式返回值

帶有返回值的函式 def add2num a,b c a b return c或者 def add2num a,b return a b在本小節剛開始的時候,說過的 買菸 的例子中,最後兒子給你菸時,你一定是從兒子手中接過來 對麼,程式也是如此,如果乙個函式返回了乙個資料,那麼想要用這個資料,那麼就...

python 函式返回值

python 函式返回值有兩種形式 1 返回乙個值。2 返回多個值。現看看返回乙個值的吧。deffirstvalue a b c a b return cprint firstvalue 1 2 結果 3 再看看返回多個值的 那怎麼可以返回多個值呢,其他的語言一般呼叫函式的話,只能返回乙個值,可能我...