本文是跟着鱼C论坛小甲鱼零基础学习Python3的视频学习的,课后题也是跟随每一课所附属的题目来做的,根据自己的理解和标准答案记录的笔记。
第十七课
测试题:
0.你有听过 DRY 吗?
答:DRY = Don't Repeat Yourself ,是程序员公认的指导原则(“避免重复代码原则”)。
1.都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?
答:为了方便能在不同的地方调用。
0) 可以降低代码量(调用函数只需要一行,而拷贝黏贴需要N倍代码)
1) 可以降低维护成本(函数只需修改def部分内容,而拷贝黏贴则需要每一处出现的地方都作修改)
2) 使序更容易阅读
2.函数可以有多个参数吗?
答:可以。理论上你想要有多少个就可以有多少个,只不过如果函数的参数过多,在调用的时候出错的机率就会大大提高,所以能减少参数的尽量减少。
3.创建函数使用什么关键字,要注意什么?
答:使用“def”关键字,要注意函数名后边要加上小括号“()”,括号内可以给函数增加参数,然后小括号后边是冒号“:”,然后缩进部分均属于函数体的内容。
4.请问这个函数有多少个参数?
def MyFun((x, y), (a, b)):
return x * y - a * b
答:0,因为类似于这样的写法是错误的!函数的参数需要的是变量,而这里你试图用“元祖”的形式来传递是不可行的,元祖不能作为函数参数使用。
5.请问调用以下这个函数会打印什么内容?
>>> def hello():
print('Hello World!')
return
print('Welcome To FishC.com!')
答:打印出 'Hello World!' ,因为函数定义的时候 return 已经返还当前值并结束函数表达了,而在其后的过程将被无视掉。
动动手:
0.编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。
答:
>>> def power(x,y):
z = x ** y
return z
#更简洁可以有
def power(x,y):
return x**y
1.编写一个函数,利用欧几里得算法求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。
答:
def gcd(x, y):
while y:
t = x % y
x = y
y = t
return x