1.写一个函数将一个指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自带的逆序函数)
def my_reverse(lst: list):
"""
给定一个列表,返回这个列表的逆序
:param lst: 列表
:return:列表的逆序
"""
return lst[-1::-1]
2.写一个函数,提取出字符串中所有奇数位上的字符
def get_odd_digits(lst: list):
"""
给定一个字符串,返回其所有奇数位上的字符
:param lst:字符串
:return: 奇数位上的字符串
"""
return lst[1::2]
3.写一个匿名函数,判断指定的年是否是闰年
fun1 = lambda x: x % 4 == 0 and x % 100 != 0
# 4.使用递归打印:
# n = 3的时候
# @
# @@
# @@@
# n = 4的时候:
# @
# @@
# @@@
# @@@@
def print_recursion(n:int):
"""
以递归的形式打印特定的字符形式
:param n:
:return: None
"""
if n == 1:
pass
else:
print_recursion(n - 1)
print('@' * n)
print_recursion(5)
5.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def check_length(lst: list):
"""
返回列表的前两位,如果列表不足两位返回None
:param lst: 列表
:return:列表或者None
"""
if len(lst) > 2:
return lst[0:2]
6.写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。(自⼰己背着写)
def feibo(n):
"""
计算第n个斐波那契数
:param n:
:return:1 or feibo(n-1)+feibo(n-2)
"""
if n == 1 or n == 2:
return 1
return feibo(n - 1) + feibo(n - 2)
7.写一个函数,获取列表中的成绩的平均值,和最高分
def get_maxandavg(lst: list):
"""
计算一个列表中的平均值和最大值
:param lst:要进行计算的列表
:return:(平均值,最大值)
"""
max = 0
avg = 0
for i in lst[:]:
avg += i
return (avg / len(lst), lst.sort()[-1])
8.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者
def get_newlist(lst):
"""
检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者
:param lst:参数
:return: 列表形式返回奇数位索引组成的列表
"""
if not isinstance(lst, list):
return list(lst[1::2])
return lst[1::2]
9.写一个属于自己的数学模块(封装自己认为以后常用的数学相关的函数和变量)和列表模块(封装自己认为以后常用的列表相关的操作)
"""
my_math.py模块
pi代表圆周率
e是自然数底数
"""
pi = 3.14
e = 2.71828
def my_sqrt(n: int):
"""
计算一个数的平方根
:param n:
:return:n的平方根
"""
return n ** 0.5
def my_prescriptions(b_num: int, u_num: int):
"""
计算以第一个数为底数第二个数为指数的次方数
:param b_num: 底数
:param u_num: 指数
:return: 一个整数
"""
return b_num ** u_num
def my_sum(num1, num2):
"""
求两个数的和
:param num1: 第一个数
:param num2: 第二个数
:return: num1+num2
"""
return num1 + num2
def my_difference(num1, num2):
"""
计算两个数的差
:param num1:被减数
:param num2: 减数
:return: num1-num2
"""
return num1 - num2
def my_ride(num1, num2):
"""
计算两个数的乘
:param num1:第一个数
:param num2:第二个数
:return: num1*num2
"""
return num1 * num2
def my_division(num1, num2):
"""
计算两个数的和
:param num1:被除数
:param num2:除数
:return:num1/num2
"""
if not num2:
exit(-1)
return num1 / num2
def my_circumference(radius):
"""
给定一个半径求相应圆的周长
:param radius: 半径
:return: 周长
"""
return 2 * radius * pi
def my_circarea(radius):
"""
给定一个半径,求相应圆的面积
:param radius:半径
:return:圆面积
"""
return pi * radius ** 2
"""
my_list.py
列表模块
"""
def length(lst:list):
"""
获取列表的长度进行返回
:param lst:要进行长度计算的列表
:return:列表长度
"""
return len(list)
def my_reverse(lst:list):
"""
逆序返回这个列表
:param lst:列表
:return:逆序的列表
"""
return lst[-1::-1]
def my_extend(lst1:list,lst2:list):
"""
两个列表进行拼接,生成一个新的列表
:param lst1:第一个列表
:param lst2:第二个列表
:return:新的列表
"""
for i in lst2:
lst1.append(i)
return lst1
def my_list_sum(lst:list):
'''
计算一个列表里的所有的和
:param lst: 一个整数列表
:return:列表的和
'''
s = 0
for i in lst:
s += i
return s
def my_list_max(lst:list):
'''
找出一个列表里的最大值
:param lst:整数列表
:return:最大值
'''
return lst.sort()[-1]
def dup_remove(lst:list):
'''
给一个列表去除重复元素
:param lst:列表
:return:不重复的列表
'''
return list(set(lst))
def my_pop(lst:list,index=-1):
'''
返回列表指定下的元素
:param lst:
:param index: 指定下标
:return: 元素
'''
item = lst[index]
del lst[index]
return item
def my_remove(lst:list,item):
'''
删除列表指定的元素
:param lst:
:param item:删除的元素
:return:None
'''
lst.remove(item)
def my_index(lst:list,item):
'''
返回指定元素的下标
:param lst:
:param item:要返回下标的元素
:return:下标
'''
i = 0
list_index=[]
lenth = length(lst)
while i < lenth:
if lst[i] == item:
list_index.append(i)
return list_index