2018-10-12 Day 10 函数应用作业(功能尽量自己写
2018-10-12 本文已影响0人
EryangZ
函数功能自己写,少用或者不用自带函数
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))