一. 课上代码
>>> 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))