摘要:在学习python递归知识点时,总是一知半解,似懂非懂的。。在反复看视频翻资料同时,也收集案例来分析求证。。通过分析下面几个案例希望能有所帮助!!!
1、用递归的方法实现阶乘。。。
1 def num(n):
2 if n == 1:
3 return 1
4 return n * num(n - 1)
5
6
7 m = num(8)
8 print(m)
2、递归做简单的判断。。。
1 def salary(n):
2 print(n)
3 """递归终止条件.....当n除于2整数位等于0时结束"""
4 if int(n / 2) == 0:
5 return n
6 res = salary(int(n / 2))
7 return res
8
9
10 res = salary(10)
11 print(res)
3、下面(问路)的这个案例更加直观。。。。
1 from time import sleep
2
3 person_list = ['Tom', 'alex', 'lucy', 'jack', 'zsc']
4
5
6 def ask_way(person_list):
7 print('-' * 60)
8 if len(person_list) == 0:
9 return '根本没人知道'
10 person = person_list.pop(0)
11 if person == 'jack':
12 return '%s说:我知道,老男孩就在沙河汇德商厦,下地铁就是' % person
13
14 print('hi 美男[%s],敢问路在何方' % person)
15 print('%s回答道:我不知道,但念你慧眼识猪,你等着,我帮你问问%s...' % (person, person_list))
16 sleep(3)
17 res = ask_way(person_list)
18
19 print('%s问的结果是: %res' % (person, res))
20 return res
21
22
23 res = ask_way(person_list)
24 print(res)