三级菜单---递归

1 def f(n):
2     if n==0 or n==1:
3         return n
4     else:
5         return f(n-2)+f(n-1)
6 
7 print(f(6))
View Code

递归:一个函数在内部调用自身本身

菲波那切数列使用递归函数

 

三级菜单实现:

 1 __author__ = 'Sco'
 2 # -*- coding:utf-8 -*-
 3 date={
 4     '北京':{
 5         '海淀':{
 6             '五道口':['快手','haha'],
 7             '六道口':'知乎'
 8         },
 9         '朝阳':{
10             '望京':'陌陌',
11             '国贸':'逻辑'
12         },
13         '昌平':{
14             '永丰':'用友'
15         }
16     },
17     '美国':{
18         '洛杉矶':{
19             'NBA':'湖人'
20         },
21         '金州':{
22             '篮球':'勇士'
23         }
24     }
25 }
26 #递归
27 def walk(x):
28     if isinstance(x,dict):              #判断是否是字典
29         print("  ".join(x.keys()))       #打印字典键值
30         choice=input('请选择输入:')
31         if choice =='q':          #输入q直接退出
32             return
33 
34         if choice not in x:                #判断用户输入是否在这个字典
35             print('输入有误,请重新输入')
36             return walk(x)
37 
38         else:
39             if isinstance(x[choice],list):   #判断是列表
40                 for i in x[choice]:
41                     print(i)
42                 return
43             else:
44                 return walk(x[choice])         #返回用户选择的
45     return x
46 
47 print(walk(date))
View Code

 

posted @ 2017-03-02 08:42  笑着带你走  阅读(100)  评论(0)    收藏  举报