day9-函数2-homework

2018-08-30  本文已影响0人  rzlong
1.写一个函数将一个指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自带的逆序函数)
reverse_order = lambda x:x[::-1]
print(reverse_order([1,5,2,7]))

result:
[7, 2, 5, 1]
2.写一个函数,提取出字符串中所有奇数位上的字符
def uneven_str(str1):
    list2 = []
    for item in str1[::2]:
        list2.append(item)
    return list2

print(uneven_str('ABCDEFGHIJK'))

result:
['A', 'C', 'E', 'G', 'I', 'K']
3.写一个匿名函数,判断指定的年是否是闰年
leap_year = lambda x:bool(x // 4 and not x // 100 or x // 400) 
print(leap_year(400))

result:
True
4.使用递归打印:
def recursion(n): #注意判断递归的函数执行顺序,一层一层的剥开解读。
    """
    递归打印@
    :param n: 行数
    :return: None
    """
    if not n:
        return
    recursion(n-1)
    print('@'*n)
recursion(5)

result:
@
@@
@@@
@@@@
@@@@@
5.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def check_list(list1):
    for item in list1[::-1]:
        if len(list1) > 2:
            list1.remove(item)
    return list1

check = check_list([1,2])
print(check)

result:
[1, 2]
6.写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。
def fibonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fibonacci(n-1)+fibonacci(n-2)
fibo = fibonacci(10)
print(fibo)

result:
55
7.写一个函数,获取列表中的成绩的平均值,和最高分
def average_best(list1):
    list1.sort()
    return (sum(list1)/len(list1),list1[-1])

ave_b =average_best([10,20,30,40])
print(ave_b)

result:
(25.0, 40)
8.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者
def uneven_index(*seq):
    return list(seq[::2])
ue_index = uneven_index('a','b','c','d')
print(ue_index)

result:
['a', 'c']
9.写一个属于自己的数学模块(封装自己认为以后常用的数学相关的函数和变量)和列表模块(封装自己认为以后常用的列表相关的操作)
'''
 没得想法,数学有运算符有math模块,list有切片,和c语言相比,简直无敌,还有列表函数。
'''
def func():
    a = []
    for i in range(5):
        a.append(lambda x:x * i)
    return a
aa = func()
print(aa[0](2),aa[2](2),aa[3](2))
'''
注意:由于闭包特性,在函数中的子函数并不会立即执行,而是全部放入到list中,并且i值随遍历变成4
 因此所得结果都是8
'''
上一篇 下一篇

猜你喜欢

热点阅读