day8作业
2018-07-25 本文已影响0人
HavenYoung
1.写⼀个函数将⼀个指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使⽤列表⾃带的逆序函数)
def swap(list, index1, index2):
temp = list[index1]
list[index1] = list[index2]
list[index2] = temp
return list
# 倒序功能
def list_swap(list):
length = int(len(list))
for index in range(int(length/2)):
list = swap(list, index, length - 1 - index)
return list
list1 = [1, 2, 3, 4, 5]
print(list_swap(list1))
print(list1)
结果:
[5, 4, 3, 2, 1]
[5, 4, 3, 2, 1]
2.写⼀个函数,提取出字符串中所有奇数位上的字符
def get_odd(string):
string_odd = ''
for index in range(len(string)):
if not index%2:
string_odd += string[index]
return string_odd
print(get_odd('123456789'))
结果:
13579
3.写⼀个匿名函数,判断指定的年是否是闰年
4.使⽤递归打印:
n = 3的时候
@
@@@
@@@@@
n = 4的时候:
@
@@@
@@@@@
@@@@@@@
def print_star(n):
if n == 1:
print(' '*(ward - n) + '*')
return
print_star(n-1)
print(' '*(ward - n), end='')
print('*'*(2*n-1))
ward = 5
print_star(5)
结果:
*
***
*****
*******
*********
方法二(骆老师指点)
def print_star(row, space=0):
if row>1:
print_star(row - 1, space + 1)
print(' ' * space, end='')
print('*' * (2 * row - 1))
else:
print(' '*space+'*')
return
print_star(5)
结果:
*
***
*****
*******
*********
5.写函数,检查传⼊列表的⻓度,如果⼤于2,那么仅保留前两个⻓度的内容,并将新内容返回给调⽤者。
def string_cut(string):
if len(string)>2:
return string[0]+string[1]
return '输入内容太短!'
print(string_cut(input('请输入一串字符串:')))
结果:
请输入一串字符串:s2f1d2
s2
6.写函数,利⽤递归获取斐波那契数列中的第 10 个数,并将该值返回给调⽤者。
def rabbits(n):
if n<=2:
return 1
return rabbits(n-1)+rabbits(n-2)
print(rabbits(10))
结果:
请输入一串字符串:s2f1d2
s2
7.写⼀个函数,获取列表中的成绩的平均值,和最⾼分
def score_manage(scores):
max = scores[0]
sum1 = 0
for score in scores:
sum1 += score
if score > max:
max = score
ave = sum1/len(scores)
return max, ave
max, ave = score_manage([80, 81, 82, 83, 84, 85])
print('最高分', max, '平均分', ave)
结果:
最高分 85 平均分 82.5
8.写函数,检查获取传⼊列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调⽤者
def get_odd(list):
list_new = []
for index in range(len(list)):
if not index%2:
list_new.append(list[index])
return list_new
print(get_odd([1, 2, 3, 4, 5, 6, 7]))
结果:
[1, 3, 5, 7]