[课后作业] 第017讲:函数 - Python的乐高积木 | 课后测试题

文章介绍了DRY(DontRepeatYourself)原则在编程中的重要性,强调了使用函数来避免代码重复,减少维护成本和提高可读性。讨论了函数参数、创建函数的关键字以及函数调用的示例。同时,提供了实现幂运算、欧几里得算法求最大公约数以及十进制转二进制的函数代码示例。
摘要由CSDN通过智能技术生成

0. 你有听说过DRY吗?

答:DRY是程序员工人的指导原则:Don't Repeat Youself。

1.都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?

① 可以降低代码量 ;②可以降低维护成本 ;③ 更容易阅读。

2. 函数可以有多个参数吗?

答:任意多个。只不过参数越多,出现错误的几率就越多。

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

答:del关键字,要注意函数名后的():

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

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

答:我自己想是2个错了hhhh 

参考答案:0个。因为语法错误,函数的参数需要的是变量,而元组里面的数值是不可变的。

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

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

# 直接调用:
hello()
Hello World!

#调用BIF:
print(hello())
Hello World!
None

0.动动手:

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

# 法一:
def power(x,y):
    return x**y

print(power(3,2))
9

#法二:
def power(x, y):
    result = 1
    z = abs(y)
   
    for i in range(z):
        if y >= 0:
            result *= x
        else:
            result *= 1/x

print(power(2, -3))
0.125

  

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

# 欧几里得算法 : gcd(a,b) = gcd(b,a mod b)。
# 两个整数的最大公约数是能够同时整除它们的最大的正整数。
# 两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。
# 参考:
def gcd(x, y):
    while y:
        R = x % y
        x = y
        y = R
    return x
    
print("最大公约数为",gcd(4,6))
最大公约数为 2

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

# 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
# 具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,
# 然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。


def trans(x):
    list_1 = []
    str_ = ""
    while x != 0 :
        y = x % 2
        x= x // 2
        list_1.append(y)
    list_1.reverse()
    
    for i in list_1:
        str_ = str_ + str(i)
    return str_

x = int(input("请输入一个正整数:"))
print(trans(x))
type(trans(x))


请输入一个正整数:66
1000010
str

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值