Python中4種實(shí)現(xiàn)數(shù)值的交換方式
1.使用臨時(shí)變量
該方法是最簡(jiǎn)單的,也是最容易理解的,適用于所有編程語言,其實(shí)現(xiàn)過程如下:
tmp = a a = b b = tmp
2.使用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
3.使用 加減法 或 乘除法
無論使用 加減法 或 乘除法,都不需要使用到臨時(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 # 乘除法 a = a * b b = a // b # b = (a * b) // b = a a = a // b # a = (a * b) // b = (a * b) // a = b
4.使用異或運(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中4種實(shí)現(xiàn)數(shù)值的交換方式的文章就介紹到這了,更多相關(guān)Python數(shù)值交換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一步步教你用python給女朋友寫個(gè)微信自動(dòng)提醒的程序
如今微信已成為我們?nèi)粘I畹闹饕涣鞴ぞ?但是微信自身的功能有時(shí)候可能并不能滿足我們的需要,因此我們會(huì)想是否可以進(jìn)行微信功能的拓展呢,這篇文章主要給大家介紹了關(guān)于利用python給女朋友寫了個(gè)微信自動(dòng)提醒程序的相關(guān)資料,需要的朋友可以參考下2021-10-10python 實(shí)現(xiàn)二維字典的鍵值合并等函數(shù)
今天小編就為大家分享一篇python 實(shí)現(xiàn)二維字典的鍵值合并等函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python實(shí)現(xiàn)查找字符串?dāng)?shù)組最長公共前綴示例
這篇文章主要介紹了Python實(shí)現(xiàn)查找字符串?dāng)?shù)組最長公共前綴,涉及Python針對(duì)字符串的遍歷、判斷、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03python獲取本周、上周、本月、上月及本季的時(shí)間代碼實(shí)例
這篇文章主要給大家介紹了關(guān)于python獲取本周、上周、本月、上月及本季的時(shí)間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python響應(yīng)對(duì)象text屬性亂碼解決方案
這篇文章主要介紹了Python響應(yīng)對(duì)象text屬性亂碼解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python清除指定目錄內(nèi)所有文件中script的方法
這篇文章主要介紹了python清除指定目錄內(nèi)所有文件中script的方法,涉及Python針對(duì)文件、字符串及正則匹配操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06用python一行代碼得到數(shù)組中某個(gè)元素的個(gè)數(shù)方法
今天小編就為大家分享一篇用python一行代碼得到數(shù)組中某個(gè)元素的個(gè)數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01