0. 你有听说过DRY吗?
编程圈里的DRY原则就是Don't repeat yourself,中文意思就是不要重复自己。理解一下:如果多次遇到同样的问题,我们应该想出一个办法一次性解决问题,不要重复写相同的代码。
1. 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?
0) 可以降低代码量
1) 可以降低维护成本
2) 提高代码可读性
2. 函数可以有多个参数吗?
可以
3. 创建函数使用什么关键字,要注意什么?
使用“def”关键字,要注意函数名后边要加上小括号“():”,然后缩进部分均属于函数体的内容
4. 请问这个函数有多少个参数?
- def MyFun((x, y), (a, b)):
- return x * y - a * b
0个,因为函数的参数需要的是变量,用元组的形式传入是不行的
修改:
def my(x,y):
return x[0] * x[1] - y[0] * y[1]
my((5,10),(2,3))
5. 请问调用以下这个函数会打印什么内容?
- >>> def hello():
- print('Hello World!')
- return
- print('Welcome To FishC.com!')
会打印'Hello World!',因为执行到return语句时,这个函数就结束了,不会再理会return下面的语句。
动动手:
0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。
def power(x,y):
return x**y
power(2,3)
def power(x,y):
result=1
for i in range(y):
result*=x
return result
power(2,3)
1. 编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。
def gcd(x,y):
while True:
a = x % y
x = y
y = a
if a==0:
return x
gcd(9,3)
2. 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(脑补链接)的方式,结果与调用bin()一样返回字符串形式。
def bin_(x):
total=[]
while x:
a=x%2
x=x//2
total.append(a)
list2 = [str(i) for i in total]
list2.reverse()
str1 = ''.join(list2)
return str1
bin_(222)