用來練手的python練習題,原題鏈接: python練習實例47
題干: 兩個變量值互換
在C語言C++中我們要構造一個能交換兩個變量值的函數很方便,我們可以使用指針,或者C++中的引用。那么在沒有指針的python中如何構造一個可以交換兩個變量值的函數呢,我的第一個想法是利用python變量的作用域。使用global關鍵詞的全局變量,代碼如下:
def exchange():global aglobal bc = aa = bb = cif __name__ == '__main__':a = 10b = 20print(a,b)exchange()print(a,b)
輸出結果如下:
我們使用global關鍵字后就可以在函數中交換外部全局變量了。但使用全局變量會讓我們的代碼在重構時產生麻煩。那么我們還可以利用Python的特性,即python函數可以返回任意個數的返回值。實現代碼如下:
def exchange(m,n):m,n = n,mreturn (m,n)if __name__ == '__main__':m = 10n = 20m,n = exchange(m,n)print("m的值是:%d"%m)print("n的值是:%d"%n)
輸出結果如下: