#(1)寻找序列中的最大值和最小值,不能用内置函数max和min
#(2)查询序列值的出现次数
#(3)逆置序列
#(4)实现序列中元素之和
#(5)实现1+1/2+1/3+1/4+……1/n
#(6)实现1+1/2+2/3+3/4+4/5+……(n-1)/n
(1)#给定序列list =[1,2,5,4,0,3,9,8,5]查询最大值和最小值
最大值:
max = list[0]
for target in list :
if target> max
max = target
print(max)
最小值:
min = list[0]
for data in list :
if data < min :
min = data
print(min)
#通过索引查找给定序列中的最大值和最小值
通过索引判断最大值:
index= 0
for j in range(len(list)) :
if list[j] > list[index] :
index = j
print(list[index])
通过索引判断最小值:
index = 0
for i in range(len(list)) :
if list[i] < list[index] :
index = i
print(list[index])
(2)寻找给定序列list =[0,1,2,3,5,0,2,8,9,1,0]目标值target = 1 的出现次数,要求用函数实现
list =[0,1,2,3,5,0,2,8,9,1,0]
def Times (list,target) :
n = 0
'''
定义一个初始化变量n来记录目标值欻出现的次数
'''
for i in data :
if i == target :
n += 1
return n
val = Times(data,1)
print(val)
(3)逆置序列list = [1,2,3,4,5,6,7,8,9]
def Test_One(list) :
start,end = 0,len(list)-1
'''
type start :定义为序列的起始下标
type end : 定义为序列的结束下标
'''
while start <end :
'''
满足以上条件时,序列对称对的两个元素交换位置
下标向中间靠近
'''
list[start],list[end] = list[end],list[start]
start,end =start+1,end-1
return list
list = [1,2,3,4,5,6,7,8,9]
val = Test_One(list)
print(val)
(4)实现序列list =[1,2,3,4,5,8,6,9]中元素之和
#方法1:通过序列元素求和
def Test_Three_One(list) :
sum = 0
for i in list :
sum = sum +i
return sum
list=[1,2,5,8,6,9]
val = Test_Three_One(list)
print(val)
#方法2:通过索引求和(实现原理同方法1)
def Test_Three_Two(list) :
sum = 0
for i in range(0,len(list)) :
sum +=list[i]
return sum
list=[1,2,5,8,6,9]
val = Test_Three_Two(list)
print(val)
#方法3:通过递归实现
def Test_Three_Three(list,start,end) :
if start >= end :
return 0
elif start == end-1 :
return list[start]
else :
mid = (start + end)//2
return Test_Three_Three(list,start,mid)+Test_Three_Three(list,mid,end)
list=[1,2,5,8,6,9]
val = Test_Three_Three(list,0,len(list))
print(val)
(5)实现1+1/2+1/3+1/4+……1/n
#循环实现
def Test_Two_One(n) :
sum = 0
for i in range(1,n+1) :
num = 1 / i
sum += num
return sum
val =Test_Two_One(2)
print(val)
#迭代实现
def Test_Two(n) :
num = 1 / n
if n == 1 :
return 1
elif n >= 2:
return num + Test_Two(n-1)
val =Test_Two(2)
print(val)
(6)实现1+1/2+2/3+3/4+4/5+……(n-1)/n
#迭代实现
def Test_Three_One(n) :
sum = 0
for i in range(1,n+1) :
if i == 1 :
num = 1
else :
num = (i-1) / i
sum += num
return sum
val = Test_Three_One(3)
print(val)
#递归实现
def Test_Three(n) :
num =(n-1) / n
if n == 1:
return 1
elif n >= 2 :
return num + Test_Three(n-1)
val = Test_Three(3)
print(val)