1.写一个函数将一个指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自带的逆序函数)
def list_rev(list1):
list2 = []
for index in range(len(list1)):
list2.append(list1[len(list1)-index-1])
list1.clear()
for i in list2:
list1.append(i)
del list2
return list1
list_b = [1,2,3]
print(list_rev(list_b))
print(list_b)
2.写一个函数,提取出字符串中所有奇数位上的字符
def str_odd(str1):
str_odd_list = []
for index in range(1,len(str1)+1):
if index % 2:
str_odd_list.append(str1[index-1])
return str_odd_list
print(str_odd('k456gj[plkjht'))
3.写一个匿名函数,判断指定的年是否是闰年
leap_year = lambda x: '闰年' if not x % 4 and x % 100 else '非闰年'
print(leap_year(2004),leap_year(1900))
4.使用递归打印:
'''
n = 3的时候
@
@@@
@@@@@
n = 4的时候:
@
@@@
@@@@@
@@@@@@@
'''
def gh_n(n):
m = n
def gh(t):
if t < 1:
return
gh(t-1)
str1 = '@'*(2*t-1)
print(str1.center(2*m-1,' '))
gh(n)
gh_n(4)
5.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def top2(list2):
if len(list2) > 2:
list_new = list2[0:2]
return list_new
print(top2([1,2,3,4]))
6.写函数,利用递归获取斐波那契数列中的第10个数,并将该值返回给调用者。
def fb(n):
if n == 1 or n == 2:
return 1
return fb(n-1)+fb(n-2)
print(fb(9))
7.写一个函数,获取列表中的成绩的平均值,和最高分
def avg_max(list3):
sum1 = 0
for x in list3:
sum1 += x
return sum1/len(list3),max(list3)
print(avg_max([10,20,30,40,50]))
8.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者
def odd_list(line):
line_new = []
for index in range(len(line)):
if index % 2:
line_new.append(line[index])
return line_new
print(odd_list([1,2,3,4,5,6,7]))
结果
[3, 2, 1]
[3, 2, 1]
['k', '5', 'g', '[', 'l', 'j', 't']
闰年 非闰年
@
@@@
@@@@@
@@@@@@@
[1, 2]
34
(30.0, 50)
[2, 4, 6]