作业1:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
代码如下:
cishu = 0
ls = [10, 8, 5, 3, 27, 99]
for i in ls:
a = i % 2
if a == 0:
cishu = i // 2 + cishu
else:
cishu = i // 2 + cishu + 1
print(“需要取%s次”%(cishu))
作业2:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
ls = []
for i in range(2, 101):
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if flag:
ls.append(i)
index = 0
print(ls)
while index < len(ls) - 1:
first = ls[index]
second = ls[index + 1]
if second - first == 2:
print(f"{first}和{second}之间是孪生素数")
index += 1
作业3:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
ls = [10, 12, 5, -20, 30, 100, 0, 8, 9]
max_value = 10
for i in ls:
if i > max_value:
# i就是最大值
max_value = i
print(“最大值是:”, max_value)
min_value = 10
for i in ls:
if i < min_value:
min_value = i
print(“最小值是:”, min_value)
count = 0
for i in ls:
count += i
print(count)
print(“平均值是:”, count/len(ls))
作业4:将list中的重复数据去重,至少使用两种方案
ls1=[1,5,7,8,4,1,5,8,4,10,11]
print(ls1)
print(list(set(ls1))) #python中集合(set)可以去重,但是该容器是无序的
#输出结果
#[1, 5, 7, 8, 4, 1, 5, 8, 4, 10, 11]
#[1, 4, 5, 7, 8, 10, 11]
ls1=[1,5,7,8,4,1,5,8,4,]
ls2=[]
for i in ls1:
if i not in ls2:
ls2.append(i)
print(ls1)
print(ls2)
作业5:两个列表进行合并操作
作业6: 使用列表判断一个列表是否在另外一个列表中
a = [1,2,3]
b = [2,3,4,5]
inter = [i for i in a if i in b]
print(inter)
作业7:列表的反转 列表的排序
列表反转:
list = [2, 1, 3, 5, 4]
list.reverse()
print(list)
#[4, 5, 3, 1, 2]
列表排序:
list = [2, 3, 4, 5, 1]
list.sort()
print(list)
#[1, 2, 3, 4, 5]
作业8:如何将0-10随机存入列表中
import random
ls = []
for i in range(10):
ls.append(random.randint(0, 10))
print(ls)