Day9—作业

2018-08-30  本文已影响0人  C0mpass

1.写一个函数将一个指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自带的逆序函数)

def reverse(list1:list):
    list2 = []
    for i in range(len(list1)):
        list2.append(max(list1))
        list1.remove(max(list1))
    return list2


print(reverse([3,2,1]))

输出结果为

[3, 2, 1]`


2.写一个函数,提取出字符串中所有奇数位上的字符

def odd_seat(str1:str):
    list1 = []
    for item in str1[::2]:
        list1.append(item)
    return list1

print(odd_seat('ABCDEFGHIJK'))

输出结果为

['A', 'C', 'E', 'G', 'I', 'K']


3.写一个匿名函数,判断指定的年是否是闰年

def leap_year(num:int):
    if (num % 4 == 0 and num % 4 != 100) or (num % 400 == 0):
        print('是闰年')
    else:
        print('不是闰年')

leap_year(2004)

输出结果为

是闰年


4.使用递归打印:


第四题
def prt(n:int):
    if n == 1:
        print('@')
        return
    prt(n-1)
    print('@' * n)

prt(5)

输出结果为

@
@@
@@@
@@@@
@@@@@


5.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def first_two(list1:list):
    if len(list1) > 2:
        return list1[:2]

list2 = first_two(['a','b','c','d','e','f'])
print(list2)

输出结果为

['a', 'b']


6.写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。(自己背着写)

def fblq(n:int):
    if n == 1 or n == 2:
        return 1
    return fblq(n -1) + fblq(n - 2)

print(fblq(10))

输出结果为

55


7.写一个函数,获取列表中的成绩的平均值,和最高分

def score(list1:list):
    sum1 = 0
    for item in list1:
        sum1 += item
    return sum1 / len(list1), max(list1)

avg_score,max_score = score([88 , 90, 65, 74, 99, 100, 56, 82, 94])
print('平均值为:%.1f\n最高分为:%d' % (avg_score, max_score))

输出结果为

平均值为:83.1
最高分为:100


8.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者

def odd_id(nums):
    list1 = []
    for item in nums[1::2]:
        list1.append(item)
    return list1

list2 = odd_id((1,2,3,4,5,6,7,8,9))
print(list2)

输出结果为

[2, 4, 6, 8]


9写一个属于自己的数学模块(封装自己认为以后常用的数学相关的函数和变量)和列表模块(封装自己认为以后常用的列表相关的操作)

上一篇下一篇

猜你喜欢

热点阅读