1.寫一個(gè)函數(shù)將一個(gè)指定的列表中的元素逆序( 如[1, 2, 3] -> [3, 2, 1])(注意:不要使 表自帶的逆序函數(shù))
代碼如下
def reserver(n):
index = len(n)
for x in range(index // 2):
t = n[x]
n[x] = n[index - x -1]
n[index - x -1] = t
return n
list1 = ['a', 1, 2, 'asd', 56]
list3 = ['a', 1, 2, 'asd']
list2 = reserver(list1)
print('逆序后', list2)
list2 = reserver(list2)
print('逆序后', list2)
運(yùn)行結(jié)果
逆序后 [56, 'asd', 2, 1, 'a']
逆序后 ['a', 1, 2, 'asd', 56]
2.寫一個(gè)函數(shù),提取出字符串中所有奇數(shù)位上的字符
代碼如下
def qi_shu(str1):
str2 = str1[1::2]
return str2
str1 = input('請輸入一串字符串:')
print('奇數(shù)位上的字符為:', qi_shu(str1))
運(yùn)行結(jié)果
請輸入一串字符串:5sd5a6ds5
奇數(shù)位上的字符為: s56s
3.寫一個(gè)匿名函數(shù)惩妇,判斷指定的年是否是閏年####代碼如下
year = lambda x: x % 400 == 0 or (x % 4 == 0 and x % 100 != 0)
print('是否閏年:', year(2018))
運(yùn)行結(jié)果
是否閏年: False
4.使用遞歸打印:
n = 3的時(shí)候
@
@@@
@@@@@
n = 4的時(shí)候:
@
@@@
@@@@@
@@@@@@@
代碼如下
def print_star(n, t):
if n == 1:
print(' ' * t, '@')
return
print_star(n - 1, t)
print(' ' * (t - n + 1), '@' * (n + n - 1))
print_star(5, 5)
運(yùn)行結(jié)果
@
@@@
@@@@@
@@@@@@@
@@@@@@@@@
5.寫函數(shù),利用遞歸獲取斐波那契數(shù)列中的第 10 個(gè)數(shù)骄蝇,并將該值返回給調(diào)用者坎藐。
代碼如下
def f1(a, a1, a2):
if a == 10:
return a1
a3 = a1 + a2
r = f1(a + 1, a2, a3)
return r
ret = f1(1, 0, 1)
print('第十個(gè)斐波那契數(shù):', ret)
運(yùn)行結(jié)果
第十個(gè)斐波那契數(shù): 34
6.寫一個(gè)函數(shù)价说,獲取列表中的成績的平均值棵磷,和最高分
代碼如下
def Avg_max(*nums):
sum1 = sum(nums)
avg1 = sum1 / len(nums)
n = 0
for x in range(len(nums)):
if n < nums[x]:
n = nums[x]
return avg1,n
print('平均值為:', Avg_max(52, 36, 10, 3)[0], '最大值為:', Avg_max(52, 36, 10, 3)[1])
運(yùn)行結(jié)果
平均值為: 25.25 最大值為: 52
7.寫函數(shù),檢查獲取傳入列表或元組對象的所有奇數(shù)位索引對應(yīng)的元素玄渗,值座菠,和最高分
代碼如下
def ji_index(*n):
list1 = list(n)
list2 = []
for x in range(len(list1)):
if x & 1:
list2.append(list1[x])
return list2
print('新列表:', ji_index(2, 5, 'sad', 55, 'ad'))
運(yùn)行結(jié)果
新列表: [5, 55]
8.實(shí)現(xiàn)屬于自己的字典update方法:用一個(gè)字典去更新另一個(gè)字典的元素(不能使用自帶的update方法)yt_update(字典1, 字典2)
代碼如下
def dict_update(num1, num2):
dict1 = dict(num1)
dict2 = dict(num2)
dict3 = {}
for key1, value1 in dict1.items():
for key2, value2 in dict2.items():
if key1 != key2:
dict3[key1] = value1
dict3[key2] = value2
else:
dict3[key1] = value2
return dict3
student = {'name': '小明', 'age': 30, 'study_id': 'py001', 'sex': 'boy'}
student1 = {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456}
print('更新后為:', dict_update(student, student1))
運(yùn)行結(jié)果
更新后為: {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456, 'age': 30}
9.實(shí)現(xiàn)屬于自己的items方法:將字典轉(zhuǎn)換成列表藤树,字典中的鍵值對轉(zhuǎn)換成元祖浴滴。(不能使用items方法)yt_items(字典)
代碼如下
def dict_update(num1, num2):
dict1 = dict(num1)
dict2 = dict(num2)
dict3 = {}
for key1, value1 in dict1.items():
for key2, value2 in dict2.items():
if key1 != key2:
dict3[key1] = value1
dict3[key2] = value2
else:
dict3[key1] = value2
return dict3
student = {'name': '小明', 'age': 30, 'study_id': 'py001', 'sex': 'boy'}
student1 = {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456}
print('更新后為:', dict_update(student, student1))
運(yùn)行結(jié)果
轉(zhuǎn)換后: [('name', '小明'), ('age', 30), ('study_id', 'py001'), ('sex', 'boy')]