ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2020 cs61a lab06

2022-03-30 19:03:31  阅读:381  来源: 互联网

标签:large return make nonlocal cs61a fib lst 2020 lab06


网址 https://inst.eecs.berkeley.edu/~cs61a/fa20/lab/lab06/#topics
problem124:

    this_file = __file__


    def make_adder_inc(a):
        """
        >>> adder1 = make_adder_inc(5)
        >>> adder2 = make_adder_inc(6)
        >>> adder1(2)
        7
        >>> adder1(2) # 5 + 2 + 1
        8
        >>> adder1(10) # 5 + 10 + 2
        17
        >>> [adder1(x) for x in [1, 2, 3]]
        [9, 11, 13]
        >>> adder2(5)
        11
        """
        "*** YOUR CODE HERE ***"
        c = -1
        def fun(b):
            nonlocal c
            c += 1
            return a + b + c
        return fun


    def make_fib():
        """Returns a function that returns the next Fibonacci number
        every time it is called.

        >>> fib = make_fib()
        >>> fib()
        0
        >>> fib()
        1
        >>> fib()
        1
        >>> fib()
        2
        >>> fib()
        3
        >>> fib2 = make_fib()
        >>> fib() + sum([fib2() for _ in range(5)])
        12
        >>> from construct_check import check
        >>> # Do not use lists in your implementation
        >>> check(this_file, 'make_fib', ['List'])
        True
        """
        "*** YOUR CODE HERE ***"
        a = 1
        b = 1
        c = 1
        n = 1
        def fun():
            nonlocal a 
            nonlocal b
            nonlocal c
            nonlocal n
            if n == 1:
                n += 1
                return 0
            if n == 2:
                n += 1
                return 1
            if n == 3:
                n += 1
                return 1
            a = b
            b = c
            c = a + b
            return c
        return fun


    def insert_items(lst, entry, elem):
        """
        >>> test_lst = [1, 5, 8, 5, 2, 3]
        >>> new_lst = insert_items(test_lst, 5, 7)
        >>> new_lst
        [1, 5, 7, 8, 5, 7, 2, 3]
        >>> large_lst = [1, 4, 8]
        >>> large_lst2 = insert_items(large_lst, 4, 4)
        >>> large_lst2
        [1, 4, 4, 8]
        >>> large_lst3 = insert_items(large_lst2, 4, 6)
        >>> large_lst3
        [1, 4, 6, 4, 6, 8]
        >>> large_lst3 is large_lst
        True
        """
        "*** YOUR CODE HERE ***"
        num = 0
        flag = 0
        for i in lst:
            if entry == elem:
                if flag == 1:
                    flag = 0
                    continue
            if i == entry:
                lst.insert(num + 1, elem)
                flag = 1
            num += 1
        return lst

problem3:

标签:large,return,make,nonlocal,cs61a,fib,lst,2020,lab06
来源: https://www.cnblogs.com/echoT/p/16078504.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有