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