《数据结构与算法》第一章入门的烂又长答案实现
from random import randrange import math class basic_exercises: def is_multiple(n,m): ''' is_multiple(n,m)函数,如果n是m的倍数,即存在整数i使得n=mi,那么函数返回True,否则False ''' try: if (n % m): return False else: return True except ZeroDivisionError: print("ZeroDivisionError,被除数为零") def is_even(k): ''' 接收一个整数k,不用乘、除、取余,判断奇偶 :return: 奇数返回True,偶数返回Flase ''' try: if (k&1): return True else: return False except TypeError: print("TypeError,输入非整数") def minmax(self, *list): ''' 找出序列中的最大数和最小数,返回一个长度为2的元组。 :param data: 数字序列 :return: 长度为2的元组——最大数和最小数 ''' print(list) k = j = list[0] # j = list[0] for i in range(len(list)): if k < list[i]: k = list[i] elif j > list[i]: j = list[i] return k,j def Sum_of_squares(self, num): ''' 返回正整数1~num的平方和 ''' k = 0 for i in range(1,num+1): j = i*i k = k + j return k def Sumofsquares_baseonsum(self, num): '''功能同Sum_of_squares()方法,使用sum实现''' list = [] for i in range(1,num+1): list.append(i*i) return sum(list) def Odd_Sum_of_squares(self,num): ''' 返回1~num正整奇数的平方和 ''' k = 0 j = 0 for i in range(1,num+1): if (i&1): j = j + i * i return j def OddSumof_squares_baseonsum(self,num): '''功能同Odd_Sum_of_squares()方法,使用sum实现''' list = [] for i in range(1,num+1): if (i&1): list.append(i*i) return sum(list) def Positive_negative_index(self, s ,k): ''' 存在长度n的字符串s,索引-n<=k<0,s[k]与s[j]指向同一元素,输入n,返回k :param s: 字符串s :param k:负数索引 :return: ''' a = len(s) if (-a <=k< 0): j = k+a if(s[k] == s[j]): return j else: print("Error:入参应该为小于长度的负整数") def range_test(self,start, end, Cadence=1): '''生成一个值为50、60、70、80的排列,求range构造函数的参数''' for i in range(start, end, Cadence): print(i) return start, end, Cadence def list_range_make(self,start, end, Cadence=1): '''使用range生成列表''' list=[] for i in range(start, end, Cadence): list.append(2 ** i) return list def choice_data(self, data): '''非空序列返回一个随机元素''' i = randrange(len(data)) return data[i] def reverse_list(self, list): ''' 颠倒n个整数组成的列表,输出新列表 ''' list1=[] for i in list: list1.insert(0, i) return list1 # 更优解 def reverse_list2(self, data): ''' 颠倒n个整数组成的列表,输出新列表 list[param1:param2:param3] param1,相当于start_index,可以为空,默认是0 param2,相当于end_index,可以为空,默认是list.size param3,步长,默认为1。步长为-1时,返回倒序原序列 ''' return data[::-1] if __name__ == '__main__': data = [0, 1, 2, 5, 5, 2, 5, 5, 56] a = basic_exercises().reverse_list2(data) print(a)