函數(shù)功能自己寫(xiě)圆雁,少用或者不用自帶函數(shù)
1.寫(xiě)一個(gè)函數(shù)將一個(gè)指定的列表中的元素逆序(如[1, 2, 3] -> [3, 2, 1])
(注意:不要使用列表自帶的逆序函數(shù))
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.寫(xiě)一個(gè)函數(shù),提取出字符串中所有奇數(shù)位上的字符
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.寫(xiě)一個(gè)匿名函數(shù)轴咱,判斷指定的年是否是閏年
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的時(shí)候
@
@ @ @
@ @ @ @ @
n = 4的時(shí)候:
@
@ @ @
@ @ @ @ @
@ @ @ @ @ @ @
"""
def triangle_print(n: int, i: int):
"""
引入一個(gè)i,i必須和n相等,用i的值來(lá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.寫(xiě)函數(shù), 利用遞歸獲取斐波那契數(shù)列中的第10個(gè)數(shù)器瘪,并將該值返回給調(diào)用者。
def fibonacci_num(n3):
if n3 <= 2:
return 1
return fibonacci_num(n3 - 1) + fibonacci_num(n3 - 2)
# 例子:求第十個(gè)斐波那契數(shù)列
print(fibonacci_num(10))
6.寫(xiě)一個(gè)函數(shù),獲取列表中的成績(jī)的平均值援所,和最高分
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.寫(xiě)函數(shù)挪略,檢查獲取傳入列表或元組對(duì)象的所有奇數(shù)位索引對(duì)應(yīng)的元素,并將其作為新的列表返回給調(diào)用者
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.實(shí)現(xiàn)屬于自己的字典update方法:用一個(gè)字典去更新另一個(gè)字典的元素(不能使用自帶的update方法)
yt_update(字典1杠娱, 字典2)
def update_dict(dict_x, dict_y):
"""
使用第二個(gè)參數(shù)去更新第一個(gè)參數(shù),參數(shù)都是字典
"""
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.實(shí)現(xiàn)屬于自己的items方法:將字典轉(zhuǎn)換成列表禽拔,字典中的鍵值對(duì)轉(zhuǎn)換成元祖室叉。(不能使用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))