Python實(shí)現(xiàn)數(shù)值交換的四種方式
使用臨時(shí)變量
該方法是最簡單的,也是最容易理解的,適用于所有編程語言,其實(shí)現(xiàn)過程如下:
tmp = a a = b b = tmp
使用tuple元組
該方法是Python下特有的方法,并且只需要一行代碼即可實(shí)現(xiàn),其使用到了元組(tuple),其大致原理如下:
- 右邊的 b, a 會(huì)構(gòu)成一個(gè)由 b 和 a 組成的元組
- 對(duì)元組進(jìn)行拆包,然后再分別賦值給到左邊的 a, b
a, b = b, a
我們也可以借助列表,右邊放一個(gè)由 b 和 a 組成的列表來實(shí)現(xiàn),但注意右邊不能放一個(gè)集合中,因?yàn)榧鲜菬o序的,會(huì)導(dǎo)致最終交換結(jié)果不對(duì)。
a, b, c, d = 100, 200, 3000, 400
# 右邊為元組
# a, b, c, d = d, c, b, a
# print(a, b, c, d) # 400 3000 200 100
# 右邊為列表
# a, b, c, d = [d, c, b, a]
# print(a, b, c, d) # 400 3000 200 100
# 右邊為集合,會(huì)導(dǎo)致最終交換數(shù)值不對(duì)
a, b, c, d = {d, c, b, a}
print(a, b, c, d) # 400 100 3000 200
使用 加減法 或 乘除法
無論使用 加減法 或 乘除法,都不需要使用到臨時(shí)變量,其實(shí)現(xiàn)過程如下:
# 加減法 a = a + b b = a - b # b = (a + b) - b = a a = a - b # a = (a + b) - b = (a + b) - a = b #學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流群:531509025 # 乘除法 a = a * b b = a // b # b = (a * b) // b = a a = a // b # a = (a * b) // b = (a * b) // a = b
使用異或運(yùn)算
異或運(yùn)算的特點(diǎn):0異或任一個(gè)數(shù)a,其結(jié)果為 a;任一數(shù)a異或自己,也就是 a異或a,其結(jié)果為 0。同時(shí)異或運(yùn)算滿足 交換律。
使用異或運(yùn)算,也不需要使用到臨時(shí)變量,其實(shí)現(xiàn)過程如下:
a = a ^ b b = a ^ b # b = (a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a a = a ^ b # a = (a ^ b) ^ b = (a ^ b) ^ a = (a ^ a) ^ b = 0 ^ b = b
到此這篇關(guān)于Python實(shí)現(xiàn)數(shù)值交換的四種方式的文章就介紹到這了,更多相關(guān)Python 數(shù)值交換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Web框架Flask開發(fā)項(xiàng)目
本文詳細(xì)講解了Python使用Web框架Flask開發(fā)項(xiàng)目的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
對(duì)python遍歷文件夾中的所有jpg文件的實(shí)例詳解
今天小編就為大家分享一篇對(duì)python遍歷文件夾中的所有jpg文件的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
通過 Django Pagination 實(shí)現(xiàn)簡單分頁功能
這篇文章主要介紹了通過 Django Pagination 實(shí)現(xiàn)簡單分頁功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
python strip() 函數(shù)和 split() 函數(shù)的詳解及實(shí)例
這篇文章主要介紹了 python strip() 函數(shù)和 split() 函數(shù)的詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02
Pygame與OpenCV聯(lián)合播放視頻并保證音畫同步
Pygame的Movie模塊已經(jīng)廢棄多年,本文主要介紹了Pygame與OpenCV聯(lián)合播放視頻并保證音畫同步,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12

