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 ***"
def adder(b):
nonlocal a
a = a + 1
return a + b -1
return adder
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 ***"
pre ,curr = -1,1
def fib():
nonlocal pre ,curr
pre , curr = curr , curr + pre
return curr
return fib
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 ***"
i = 0
while i < len(lst) :
if lst[i] == entry :
lst.insert(i+1, elem)
i = i + 2
else :
i = i + 1
# for i in range(len(temp)):
# if temp[i] == entry :
# temp.insert(i+1, elem)
# i = i + 2
return lst
cs61a 2020 fall lab06
最新推荐文章于 2024-10-02 10:53:34 发布
文章介绍了几个Python函数,包括递归函数`make_adder_inc`和`fib`用于生成Fibonacci数列,以及`insert_items`函数实现列表中插入元素。同时,代码示例展示了如何在列表中插入元素并保持列表结构不变。
摘要由CSDN通过智能技术生成