1.有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
coin_list = [10, 8, 5, 3, 27, 99 ]
i = 0
a = 0
for i in coin_list:
if i % 2 == 0:
a += i // 2
else:
a += i // 2 + 1
print(f"最少需要拿{a}次")
2.如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
m = 2
for i in range(2 ,101):
flage = True
for j in range(2, i // 2 + 1):
if i % j == 0:
flage = False
break
if flage == True:
if i - m == 2:
print(f"({m}, {i})")
m = i
3.给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr_min = arr[0]
arr_max = arr[0]
sum = 0
for i in arr:
if i > arr_max:
arr_max = i
if i < arr_min:
arr_max = i
sum += i
aver = sum / len(arr)
print(f"最大值为{arr_max}")
print(f"最小值为{arr_min}")
print(f"和为{sum}")
print(f"平均值为{aver}")
4.将list中的重复数据去重,至少使用两种方案
方法一:
num1 = [1, 2, 3, 3, 4, 4, 5, 1]
num2 = []
for i in num1:
if i not in num2:
num2.append(i)
print(num2)
方法二:
num = [1, 2, 3, 4, 4, 5, 6, 2, 3]
arr = list(set(num))
print(arr)
5.两个列表进行合并操作
arr1 = ["asd", 123, "hahaha", 45]
arr2 = ["qwe", 147, "lalala", 66]
arr1.extend(arr2)
print(arr1)
6.使用列表判断一个列表是否在另外一个列表中
num1 = [1, 2, 3, 4, 5, 6, 7]
num2 = [3, 4, 5]
for i in num2:
if i in num1:
print("num2在num1中")
break
else:
print("num2不在num1中")
break
7.列表的反转reverse 列表的排序sort
list = [1, 4, 5, 2, 6, 7, 3]
list.reverse()
print(f"反转{list}")
list.sort()
print(f"排序{list}")
8.如何将0-10随机存入列表
import random
arr = list()
for i in range(10):
a = random.randint(0,10)
arr.append(a)
print(arr)
9.存在一个1~n的连续列表,在其中不小心重复了一个值,请找出这个重复值
[1,2,3,4,5]
arr = [1, 2, 6, 4, 6, 5, 3]
res = 0
for i in range(len(arr)):
res ^= i ^ arr[i]
print(res)