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)