1.写一个函数将一个指定的列表中的元素逆序( 如[1, 2, 3] -> [3, 2, 1])(注意:不使用自带的逆序函数)
def list_reverse(list1:list):
'''排序方法'''
for i in range(1,len(list1)):
for j in range(i,len(list1)):
if list1[j-1]>list1[j]:
temp=list1[j-1]
list1[j-1]=list1[j]
list1[j]=temp
list1=list1[::-1]
return list1
print(list_reverse([1,5,7,3,9,4,6]))
2.写一个函数,提取出字符串中所有奇数位上的字符
def extra_string(string:str):
'''获取字符串奇数位字符'''
col=[]
for i in range(1,len(string),2):
col.append(string[i])
return col
print(extra_string('123456abcdefg'))
3.写一个匿名函数,判断指定的年是否是闰年
jugle_year=lambda year: False if year % 4 else True
print(jugle_year(2000))
4.使用递归打印:
n = 3的时候
@
@@@
@@@@@
n = 4的时候:
@
@@@
@@@@@
@@@@@@@
5.写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。
def fibo(n=10):
if n==1 or n==2:
return 1
return fibo(n-1)+fibo(n-2)
print(fibo()) #55
6.写一个函数,获取列表中的成绩的平均值,和最高分
def score_get(score:list):
max=0
sum=0
for x in score:
if x >max: max=x
sum+=x
average=sum/len(score)
return average,max
print(score_get([99,66,78,95,86,73])) #(82.83333333333333, 99)
7.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者
def extra_element (params):
col=[]
for i in range(1,len(params),2):
col.append(params[i])
return col
print(extra_element((1,2,3,4,5,6,7,8))) #[2, 4, 6, 8]
print(extra_element([1,3,5,7,9,11])) #[3, 7, 11]
8.实现属于自己的字典update方法:用一个字典去更新另一个字典的元素(不能使用自带的update方法)
def dict_update(dict1:dict,dict2:dict)->dict:
for key in dict2:
dict1[key]=dict2[key]
return dict1
A={"name":"James","age":22,"city":"shanghai"}
B={"city":"shanghai","school":"qinghua","job":"engineer"}
print(dict_update(A,B))
#{'name': 'James', 'age': 22, 'city': 'shanghai', 'school': 'qinghua', 'job': 'engineer'}
9.实现属于自己的items方法:将字典转换成列表,字典中的键值对转换成元祖。(不能使用items方法)
yt_items(字典)
例如:{'a': 1, 'b':2, 'c':3} ---> [('a', 1), ('b', 2), ('c', 3)]
def My_items(dictionary:dict):
col=[]
for key in dictionary:
temp=(key,dictionary[key])
col.append(temp)
return col
print(My_items({"name":"James","age":22,"city":"shanghai"}))
#[('name', 'James'), ('age', 22), ('city', 'shanghai')]