1、关于递归的代码
#会返回None的错误代码while len(string)<=1:return Trueelse:if string[0]!=string[-1]:return Falseelse:string = string[1:-1]#正确while len(string) > 1:if string[0] != string[-1]:return Falseelse:string = string[1:-1]return True
错误原因:根本没有while-else这个结构。当字符串长度比1打的时候不会执行任何,只有当字符串长度小于1的时候才会执行循环体内部的结构。
2、编写一个程序,找出能被从1到给定数字n
(包括n)的所有数字整除的最小正数(即最小公倍数)。
首先,掌握最基础的最大公约数(GCD)和最小公倍数(LCM)的概念。
def gcd(a, b):while b:a, b = b, a % breturn adef lcm(a, b):return a * b // gcd(a, b)
此问题的解决借助于
def smallest_multiple(n):if n < 1:return Noneresult = 1for i in range(2, n + 1):result = lcm(result, i)return result