本文主要是介绍FIsh论坛《零基础入门学习Python》| 第023、024讲 课后测试题及答案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
FIsh论坛《零基础入门学习Python》|第023、024讲:递归:这帮小兔崽子、汉诺塔 | 课后测试题及答案
动动手
- 使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。
def Bin(x):if x==0:return '0'elif x==1:return '1'else:return Bin(x//2)+str(x%2)
print(Bin(5))
输出结果:
101
1.写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。
def fun(x):if x//10==0:return [x]else:return fun(x//10)+[x%10]
print(fun(1995))输出结果:
[1, 9, 9, 5]
- 还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能骄傲的说我可以吗?
def fun(str1):if len(str1)==1:return 1elif len(str1)==2:if str1[1]==str1[0]:return 1else:return 0else:if str1[0]==str1[len(str1)-1] and fun(str1[1:len(str1)-1])==1:return 1else:return 0print(fun("上海自来水来自海上"))
print(fun("上海海上"))输出结果:
1
1
小问题:
str = 'abcdefg'print(str[1:])
print(len(str))
print(len(str)-1)
print(str[1:len(str)])
#print(str[len(str)])错误
print(str[len(str)-1])
print(str[1:(len(str)-1)])
print(str[6])
print(str[1:6])#包括起始位置不包括结束位置
输出结果:
bcdefg
7
6
bcdefg
g
bcdef
g
bcdef
- 使用递归编程求解以下问题:
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
def age(n):if n == 1:return 10else:return age(n-1) + 2print(age(5))
输出结果:
18
- 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
递归,print(str[1:6])#包括起始位置不包括结束位置
这篇关于FIsh论坛《零基础入门学习Python》| 第023、024讲 课后测试题及答案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!