小甲鱼Python第017讲函数 - Python的乐高积木 | 课后测试题及参考答案

测试题:
      
0. 你有听说过DRY吗?
       emmm,DYP是程序员工人的指导原则:Don't Repeat Youself。

  武装自己的思想,拿起函数,不要再去重复拷贝一段代码。
1. 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?
     使用函数的优点:

  0)可以降低代码量(调用一行即可,粘贴复制将增加大量代码)

  1)可以降低维护成本(若修改只需要修改函数内部)

  2)更容易阅读

 

2. 函数可以有多个参数吗?
     任意多个。只不过参数越多,出现错误的几率就越多。


3. 创建函数使用什么关键字,要注意什么?

  关键字“def”,函数名后加“()”,小括号后加“:”。eg:

 

1 def first(name,sex="girl"):
2     print(name+"是一个"+sex)
3 
4     return
5 output1 = first ("小白")
6 output2= first(sex = "boy",name ="小黑")
7 output2= first( "boy","小黑")

 

4. 请问这个函数有多少个参数?

  1. def MyFun((x, y), (a, b)):
  2.     return x * y - a * b
复制代码

  欧吼!我错了~~

  原来是0。因为类似于这样的写法是错误的。函数的参数需要的是变量,而这里试图用元组的形式传递是不可行的。

  修改:

1 def MyFun (x,y):
2     return x[0]*x[1]-y[0]*y[1]
3 result = MyFun((3,5),(1,4))
4 print(result)


5. 请问调用以下这个函数会打印什么内容?

  1. >>> def hello():
  2.         print('Hello World!')
  3.         return
  4.         print('Welcome To FishC.com!')
复制代码

  会打印:Hello World!

  因为python在执行函数的时候,遇到return就默认函数结束,需要返回,不对函数进行下一步运行。(尽管没有返回值)

动动手:
     
0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。
     

 1 #方法一:
 2 def power1(x,y):
 3     return x**y
 4 g =power1(2,3)
 5 print(g)
 6 #方法二:
 7 def power2(x,y):
 8     result = 1
 9     for i in range(y):
10         result  *=x
11     return  result
12 print(power2(3,3))

1. 编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。

 1 print("求解最大公约数")
 2 def gcd(x,y):
 3     while y != 0 :
 4         result= x % y
 5         x=y
 6         y=result
 7     return x
 8 x = int (input("请输入一个正整数x:"))
 9 y = int (input("请输入一个正整数y:"))
10 g = gcd(x,y)
11 print(g)

    
2. 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(脑补链接)的方式,结果与调用bin()一样返回字符串形式。

 1 print("十进制转二进制")
 2 def tansl(x):
 3     list = []
 4     number = ""
 5     while x :
 6         y = x%2
 7         x= x//2
 8         list.append(y)
 9     while list:
10         number += str(list.pop())
11     return number
12 x = int(input("请输入一个正整数:"))
13 print(tansl(x))

3. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式

 

posted @ 2020-05-19 16:19  逆袭小白  阅读(554)  评论(0编辑  收藏  举报