有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
num = 0
coins = [10, 8, 5, 3, 27, 99]
for c in coins:
if c % 2 == 0:
num += c // 2
else:
num += c // 2 + 1
print(f"用户最少需要{num}次,可以拿完硬币")
如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
zhishu=[]
for i in range(2,100):
for a in range(2,i-1):
if i % a == 0:
break
else:
zhishu.append(i)
for x in range(2,len(zhishu)):
if zhishu[x] - zhishu[x-1] ==2:
print(f"{zhishu[x-1]}和{zhishu[x]}是孪生数")
print()
给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
arr = [10, 8, 5, 3, 27, 99]
arr_max = arr[0]
arr_min = arr[0]
arr_sum = 0
for a in arr:
if a > arr_max:
arr_max = a
if a < arr_min:
arr_min = a
arr_sum += a
print(f"最大值是{arr_max}")
print(f"最小值是{arr_min}")
print(f"平均值是{arr_sum / len(arr)}")
将list中的重复数据去重,至少使用两种方案
old_list = [1,2,5,5,3,3,4,2]
new_list = []
for i in old_list:
if i not in new_list:
new_list.append(i)
print(new_list)
#使用集合set
new_list = list(set(old_list))
print(new_list)
两个列表进行合并操作
#合并列表
a = [1,2,"haha","hehe"]
b = ["zhouhao","nihao",520,456789]
#将b合并到a
a.extend(b)
print(a)
#将a合并到b
b.extend(a)
print(b)
使用列表判断一个列表是否在另外一个列表中
a = [1,2,3,4,5,6,7,8,9,10,44,55,22,321]
b = [1,2,3,4,5,6,7,8,9,10]
if set(a) > set(b):
print("b列表在a列表中")
else:
print("a列表在b列表中")
列表的反转 列表的排序
#列表的反转和排序
a = [1,2,5,5,3,3,4,2]
a.reverse()
print(a)
#排序
a.sort()
print(a)
如何将0-10随机存入列表中
import random
# 如何将0-10随机存入列表中
arr = list()
for i in range(20):
a = random.randint(0, 10)
arr.append(a)
print(arr)
存在一个1~n的连续列表,在其中不小心重复了一个值,请找出这个重复值
[1,2,3,4,5]
res = 0
arr = [1, 4, 2, 3, 4, 5]
for i in range(0, len(arr)):
res ^= i ^ arr[i]
print(res)