1.有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
a=[10, 8, 5, 3, 27, 99]
x=0
for i in a:
if i%2==0:
x+=i//2
else:
x+=i//2+1
print(x)
2.如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
a = []
for num in range(2,101):
flag = True
for i in range(2,num):
if num%i == 0:
flag = False
break
if flag:
a.append(num)
else:
pass
print("素数",a)
i = 1
while i < len(a):
if a[i] - a[i - 1] == 2:
print("{}和{}是孪生数".format(a[i], a[i - 1]),end="\n\n")
if i == 6 or i == 10:
print(" ")
i += 1
3.给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
最大值
a=[10,20,25,45,50,55,13,23]
max_num=0
for i in a :
if i>max_num:
max_num = i
print("最大值为:%s"%max_num)
最小值
min_num = 55
for i in a:
if i < min_num:
min_num = i
print("最小值是:%s"%min_num)
平均值
avg_num=0
for i in a :
avg_num+=i
print("平均值是:%s"%(avg_num/len(a)))
和
sun_num=0
for i in a :
sun_num+=i
print("平均值是:%s"%(sun_num))
4.将list中的重复数据去重,至少使用两种方案
方法1
ls =[8,11,25,20,50,11,25]
for i in ls :
ls2=list(set(ls))
print("去重后的元素为:%s"%ls2)
方法2
ls=[1,3,5,5,6,8,7]
ls2=[]
for i in ls:
if i not in ls2:
ls2.append(i)
print("去重后的元素为:%s"%ls2)
5.两个列表进行合并操作
方法1
ls1=[1,2,3,4,5,6]
ls2=[7,8,9,10,11]
print('合并后的列表为:%s'%(ls1+ls2))
方法2
ls1.extend(ls2)
print('合并后的列表为:%s'%ls1)
6.列表的反转 列表的排序
反转
ls=[1,66,75,51,50]
for i in ls:
ls.reverse()
print("反转后的元素为:%s"%ls)
排序
ls2=[5,6,1,4,8,78,32]
ls2.sort()
print("排序后的元素为:%s"%ls2)
7.如何将0-10随机存入列表中
import random
ls=[]
for i in range(1,11):
num=random.randint(1, 11)
ls.append(num)
print("添加的元素为:%s"%ls)
8.存在一个1~n的连续列表,在其中不小心重复了一个值,请找出这个重复值
[1,2,3,4,5]
a = 0
arr =[1,2,3,4,5,5]
for i in range(0, len(arr)):
a ^= i ^ arr[i]
print(a)