标签:find turn 携程 return eve 找不到 北京 inpu 老男孩
二分查找算法
在执行的时候每次都是取出列表的中间位置的值来和要查找的值相比较,如果中间值小于目标值,则在后半部分中寻找;找出后半部分的中间值,再与目标值相比较,以此类推。
def find_2(l,aim,start=0,end=None):
if end == None:end = len(l) - 1
if start <= end:
mid = (end-start) // 2 + start
if l[mid] > aim:
find_2(l,aim,start,mid-1)
elif l[mid] < aim:
find_2(l,aim,mid+1,end)
else:
print(aim,mid)
else:
print(‘找不到这个值‘)
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
find_2(l,32)
# 32 10
alex的年龄问题:
def age(n):
if n == 4:
return 40
return age(n+1)+2
print(age(1))
# 46
阶乘:
def f(n):
if n==1:
return 1
return n*f(n-1)
print(f(3))
# 6
斐波那契数列
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)
print(fib(8))
# 21
三级菜单:
menu = {
‘北京‘: {
‘海淀‘: {
‘五道口‘: {
‘soho‘: {},
‘网易‘: {},
‘google‘: {}
},
‘中关村‘: {
‘爱奇艺‘: {},
‘汽车之家‘: {},
‘youku‘: {},
},
‘上地‘: {
‘百度‘: {},
},
},
‘昌平‘: {
‘沙河‘: {
‘老男孩‘: {},
‘北航‘: {},
},
‘天通苑‘: {},
‘回龙观‘: {},
},
‘朝阳‘: {},
‘东城‘: {},
},
‘上海‘: {
‘闵行‘: {
"人民广场": {
‘炸鸡店‘: {}
}
},
‘闸北‘: {
‘火车战‘: {
‘携程‘: {}
}
},
‘浦东‘: {},
},
‘山东‘: {},
}
def menu_3(menu):
while True:
for key in menu:
print(key)
choice=input(‘选择:‘)
if choice == ‘q‘ or choice == ‘b‘:
return choice
elif choice in menu and menu_3(menu[choice]):
borq = menu_3(menu[choice])
if borq == ‘q‘:
return ‘q‘
menu_3(menu)
标签:find turn 携程 return eve 找不到 北京 inpu 老男孩
原文地址:http://www.cnblogs.com/gumo/p/7827126.html