一. 課上代碼
>>> def MyFirstFunction():
print("This is my first function")
>>> MyFirstFunction()
This is my first function
>>> def MySecondFunction(name):
print(name + ' I love you')
>>> MySecondFunction('Jack')
Jack I love you
>>> def add(num1, num2):
result = num1 + num2
print(result)
>>> add(1, 2)
3
>>> def add(num1, num2):
return (num1 + num2)
>>> print(add(5, 6))
11
>>>
二. 測試題
- 請問這個函數有多少個參數?
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
三. 動動手
- 編寫一個函數,利用歐幾里得算法求最大公約數,例如gcd(x, y)返回值為參數x和參數y的最大公約數
#此處很巧妙,需要反復思考
def gcd(x, y):
while y:
t = x % y
x = y
y = t
return x
print(gcd(4, 6))
- 編寫一個將十進制轉換為二進制的函數,要求采用除2取余的方式,結果與調用bin()一樣返回字符串形式
def Dec2Bin(dec):
temp = []
result = ''
while dec:
quo = dec % 2
dec = dec // 2
temp.append(quo)
while temp:
result += str(temp.pop())
return result
print(Dec2Bin(62))