1.有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
num = [10,8,5,3,27,99]
count = 0
for i in num :
if i % 2 == 0:
count += i // 2
else :
count += i // 2 + 1
print(f"最少需要{count}次")
2.如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
list = []
for num in range(2,101) :
flag = True
for i in range(2,num) :
if num % i == 0 :
flag = False
break
if flag:
list.append(num)
else:
pass
print("1~100以内的素数有:")
print(list)
i = 1
while i < len(list):
if list[i] - list[i - 1] == 2:
print("{}和{}是孪生数".format(list[i], list[i - 1]),end="\n")
i += 1
3.给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
list = [1,54,46,613,4561,45,8,6,2,89]
max = 0
for i in list :
if i > max :
max = i
min = 2
for i in list :
if i < min :
min = i
count = 0
for i in list:
count += i
print("最大值是:", max)
print("最小值是:", min)
print("平均值是:", count /len (list))
4.将list中的重复数据去重,至少使用两种方案
第一种:转化为set去重
ls = [1,2,3,35,44,1,55,26,66,35,44]
print(f'原列表为:{ls}')
ls = list(set(ls))
print(f'去重后的列表为:{ls}')
第二种:遍历
ls = [1,2,3,35,44,1,55,26,66,35,44]
print(f'原列表为:{ls}')
ls1 = []
for n in ls:
if n not in ls1:
ls1.append(n)
ls = ls1
print(f'去重后的列表为:{ls}')
两个列表进行合并操作
方法一:直接用加号拼接
a = [1,2,3]
b = [4,5,6]
c = a + b
print(c)
方法二:使用extend
a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(f'将b合并到a中:{a}')
使用列表判断一个列表是否在另外一个列表中
a = [1,2,3]
b = [2,3,4,5]
c = []
for i in b :
if i in a :
c.append(i)
print(c)
列表的反转 列表的排序
a = [1,8,6,96,41,53,51,74]
a.reverse()
print(f"反转后的列表为{a}")
a.sort()
print(f"排序反转后的列表为{a}")
5.如何将0-10随机存入列表中
import random
a = []
while True :
i = random.randint(0,10)
if i not in a :
a.append(i)
if len(a) == 11 :
break
print(f"列表为{a}")
6.存在一个1~n的连续列表,在其中不小心重复了一个值,请找出这个重复值
[1,2,3,4,5]
a = [1,2,3,4,5,5]
for i in range(1,len(a)) :
for j in range(1,i) :
if a[i] == a[j] :
print(f"重复的值为:{a[i]}")