冒泡算法递归与装饰器

一、冒泡排序

 1 #! /usr/bin/env python
 2 # -*- conding:utf-8 -*-
 3 
 4 def my_sort(li):
 5     """
 6     返回列表从大到小排序
 7     :param li: 列表
 8     :return: 返回一个从打到小排序的列表
 9     """
10     for i in range(len(li) - 1):
11         for j in range(len(li) - 1 -i):
12             if li[j + 1] < li[j]:
13                 li[j + 1], li[j] = li[j], li[j + 1]
14     print(li)
15 
16 li = [5,1,10,6,867,9,0]
17 my_sort(li)

二、递归与斐波那契数列

 1 #! /usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 def func(depth, max, a1, a2):
 5     """
 6     返回斐波那契数列第n个数的值
 7     :param depth:开始值
 8     :param max:第n个值
 9     :param a1:斐波那契数列的第一个数
10     :param a2:斐波那契数列的第二个数
11     :return:返回第max斐波那契数列的值
12     """
13     # print(a1)
14     if depth == max:
15         return a1
16     a3 = a1 + a2
17     r = func(depth + 1, max, a2, a3)
18     return r
19 
20 ret = func(1, 10, 0, 1)
21 print(ret)

三、装饰器

 

 

 1 #! /usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 def outer(func):
 5     def inner(*args, **kwargs):
 6         print("Brfore running the func...")
 7         ret = func(*args, **kwargs)
 8         print("After running the func...")
 9         return ret
10     return inner
11 
12 @outer
13 def index(a1, a2, a3):
14     return a1 + a2 - a3
15 
16 @outer
17 def fun1(s, s1):
18     print("In the fnnc1")
19     return s + s1
20 
21 ret = index(10, 5, 3)
22 print(ret)

 

 

posted @ 2020-05-16 17:35  H年轻的心  阅读(14)  评论(0)    收藏  举报