|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 铁棍阿童木 于 2017-9-26 12:14 编辑
第17讲课后练习
0.没有!
1.都是重复一段代码,为什么要使用函数呢?
答:1、可以有效减少代码量,使得代码的可读性更好,也更加简洁美观;
2、代码编写效率更高,后续只需重复调用就行了。
2.函数可以有多个参数吗?
答:可以,理论上参数的数量不受限制,但是为了让函数的功能更加简洁直观,一般不超过3个参数为好。
3. 创建函数用什么关键字,要注意什么?
答:def 关键字用于创建函数,需要注意的是:
1.取一个易懂易记的函数名;
2.不要忘记在加上函数名后面加上小括号()和冒号:
3.如果有参数,那么最好取一个简单直观的参数名放在小括号里面。
4.请问这个函数有多少个参数?
>>>def MyFun((x,y),(a,b))
return x*y-a*b
答:我以为是两个,结果是报错,python不允许这样的参数格式。
5.请问调用以下函数会打印什么内容?
>>>def hello ():
print("hello world!")
return
print ("welcome to FishC.com")
答:只会打印“hello world!”return后面的print语句不会被执行。
动动手:
0.编写一个函数power()模拟内建函数pow()计算并返回x的y次幂的值。
def power (x, y):
result = x ** y
return result
1.编写一个函数,利用欧几里得算法求最大公约数,返回值为参数x和参数y的最大公约数。
# 欧几里得算法(辗转相除法)求最大公约数
def My_gcd_Func(num1,num2):
while True:
divisor = num1 % num2
if divisor != 0:
num1 = num2
num2 = divisor
continue
else:
return num2
备注:看了小甲鱼的代码侯,感觉自己的代码啰嗦了点。哈哈哈,不过也还行!
2.编写一个将十进制转换为二进制的函数,要求采用“除2取余”的方法,结果与调用bin()一样返回字符串形式。
# remainder变量用来记录余数
# 创建一个名为sesult的字符串变量,用来展示最终计算结果。
# 空列表num_list用于存放每一轮计算的余数
def dec_bin(num):
result = "0b" #这个的作用就是模仿bin()返回的字符串形式以0b开头。
num_list = []
while True:
remainder = num - num // 2 * 2 #这一行我想多了,其实只要取余%就行了。
num = num // 2
num_list.append(remainder)
if num ==0:
num_list.reverse()
for each in num_list:
string = str(each)
result = result[:] + string
break
return result
运行结果与bin()对比如图:
备注:这个函数只能将十进制整数转换成二进制。 |
-
|