0) 可以降低代碼量(調用函數只需要一行,而拷貝黏貼需要N倍代碼)
1) 可以降低維護成本(函數只需修改def部分內容,而拷貝黏貼則需要每一處出現的地方都作修改)
2) 使序更容易閱讀(沒有人會希望看到一個程序重復一萬行“I love FishC.com”)
def MyFun((x, y), (a, b)):
return x * y - a * b
我們分析下,函數的參數需要的是變量,而這里你試圖用“元祖”的形式來傳遞是不可行的。
>>> def MyFun(x, y):
return x[0] * x[1] - y[0] * y[1]
>>> MyFun((3, 4), (1, 2))
10
5. 請問調用以下這個函數會打印什么內容?
def hello():
print('Hello World!')
return
print('Welcome To FishC.com!')
Hello World!,因為當Python執行到return語句的時候,Python認為函數到此結束,需要返回了(盡管沒有任何返回值)
動動手
0. 編寫一個函數power()模擬內建函數pow(),即power(x, y)為計算並返回x的y次冪的值。
自己寫的
def power(x,y):
z = x**y
return z
print(power(2,2))
小甲魚代碼:
def power(x,y):
result = x**y
return result
1. 編寫一個函數,利用歐幾里得算法(腦補鏈接)求最大公約數,例如gcd(x, y)返回值為參數x和參數y的最大公約數。
自己寫的:
def gcd(x,y):
while y:
r =x%y
x = y
y = r
return x
print(gcd(10,5))
算法流程圖:
2. 編寫一個將十進制轉換為二進制的函數,要求采用“除2取余”(腦補鏈接)的方式,結果與調用bin()一樣返回字符串形式
不會寫:利用數組、while循環
def DectoBin(num):
temp = []
result = ''
while num:
x = num%2
num = num//2
temp.append(x)
while temp:
result += str(temp.pop())
return result
