RUNOOB python練習題47 交換兩個變數值

2020-08-12 22:44:23

用來練手的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)

輸出結果如下:
在这里插入图片描述