美文网首页
2018-10-12 Day 10 函数应用作业(功能尽量自己写

2018-10-12 Day 10 函数应用作业(功能尽量自己写

作者: EryangZ | 来源:发表于2018-10-12 00:47 被阅读0次

函数功能自己写,少用或者不用自带函数

1.写一个函数将一个指定的列表中的元素逆序(如[1, 2, 3] -> [3, 2, 1])

(注意:不要使用列表自带的逆序函数)

def reverse_list(list_re):
    """
    让列表元素逆序
    :param list_re:
    :return:
    """
    num_list = -1
    for element_index in range(len(list_re) // 2):
        list_re[element_index], list_re[num_list] = list_re[num_list], list_re[element_index]
        num_list -= 1
    return list_re


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

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

def out_str(n1: str):
    list1 = []
    for i in range(len(n1)):
        if i % 2:
            list1.append(n1[i])
    return list1


# 例子: hello
str1 = "study_good"
print(out_str(str1))

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

leap_year = lambda x: bool((not x % 400) or ((not x % 4) and x % 100))

# 例子:400, 200, 100, 96
print(leap_year(400), leap_year(200), leap_year(100), leap_year(96), sep="\n")

4.使用递归打印:

"""
n = 3的时候
    @
  @ @ @
@ @ @ @ @
n = 4的时候:
      @
    @ @ @
  @ @ @ @ @
@ @ @ @ @ @ @
"""

def triangle_print(n: int, i: int):
    """
    引入一个i,i必须和n相等,用i的值来定义填充空白
    """
    if n == 1:
        return print("*".center(2 * i - 1))

    return triangle_print(n - 1, i), print(("*" * (2 * n - 1)).center(2 * i - 1))


print(triangle_print(4, 4))

5.写函数, 利用递归获取斐波那契数列中的第10个数,并将该值返回给调用者。

def fibonacci_num(n3):
    if n3 <= 2:
        return 1

    return fibonacci_num(n3 - 1) + fibonacci_num(n3 - 2)


# 例子:求第十个斐波那契数列
print(fibonacci_num(10))

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

def averages(n4: list):
    max_num = n4[0]
    sum1 = 0
    for nums in n4:
        sum1 += nums
        if nums > max_num:
            max_num = nums
    return "平均值为%s,最高分为%s" % (sum1/len(n4), max_num)


# 例子:[1, 2, 3, 4, 5, 9]
a = [1, 2, 3, 4, 5, 9]
print(averages(a))

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

def get_back_num(vessel_x):
    list_x = []
    for i in range(len(vessel_x)):
        if i % 2:
            list_x.append(vessel_x[i])
    return list_x


list_a = [1, 2, 3, 4, 5]
tuple_a = [6, 7, 8, 9, 0]
print(get_back_num(list_a), get_back_num(tuple_a), sep="\n")

8.实现属于自己的字典update方法:用一个字典去更新另一个字典的元素(不能使用自带的update方法)

yt_update(字典1, 字典2)

def update_dict(dict_x, dict_y):
    """
    使用第二个参数去更新第一个参数,参数都是字典
    """
    for key_y in dict_y:
        dict_x[key_y] = dict_y[key_y]
    return dict_x


dict_a = {"a": 2, "b": 4, "c": 5}
dict_b = {"a": 3, "d": 6, "e": 7}
print(update_dict(dict_a, dict_b))

9.实现属于自己的items方法:将字典转换成列表,字典中的键值对转换成元祖。(不能使用items方法)yt_items(字典)

例如:{'a': 1, 'b':2, 'c':3} ---> [('a', 1), ('b', 2), ('c', 3)]

def transform_dict(dict_ey):
    list_tu = []
    for key_dict in dict_ey:
        tuple_ey = key_dict, dict_ey[key_dict]
        list_tu.append(tuple_ey)
    return list_tu


dict_tran = {"name": "小明", "age": 18, "id": "2134"}
print(transform_dict(dict_tran))

相关文章

网友评论

      本文标题:2018-10-12 Day 10 函数应用作业(功能尽量自己写

      本文链接:https://www.haomeiwen.com/subject/awxwaftx.html