难理解题
(1)def zbcz(a,start,end,key): #设置函数
if start>end: #比较大小
return -1
num=(start+end)//2 #取中间数
if key>a[num]: #如果要查找的数大于中间数则执行代码
return zbcz(a,num+1,end,key) #返回值得到num+1
elif key<a[num]: #如果要查找的数小于中间数则执行代码
return zbcz(a,start,num-1,key) #返回值得到num-1
else:
return num #最后得出k的位置
a=[11,12,13,14,15,16,17,18,19,20]
k=int(input(‘输入要查找的数’)) #输入数
x=zbcz(a,0,len(a)-1,k) #在列表a,0到9的索引中查找k的位置
print(k,‘的位置是’,x) #输出结果
理解
递归
#递归三件
#递归前进
#递归后退
#递归边界
#当递归边界成立的时候,递归后退,不成立的时候递归前进
def jiecheng(n):
if n==1:#递归边界
return 1
else:
return n*jiecheng(n-1)
x=jiecheng(3)#从3开始
print(x)
理解2
def a(n):
print(n)#输出n
if n==1:#当n=1时返回值
return
a(n-1)#递减
print(‘heihei’)#递减完成打印循环到1前的次数
a(4)#从4开始