Python第五次作业

一:有一堆硬币,每次只能拿一个或者两个,求

最少多少次可以拿完硬币
        [10, 8, 5, 3, 27, 99]

num = 0
s = [10, 8, 5, 3, 27, 99]
for i in s:
    a = i % 2
    if a == 0:
        num = i // 2 + num
    else:
        num = i // 2 + num + 1
print("需要取%s次"%(num))
运行结果:

二:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

l = []
for num in range(2, 101):
    flag = True
    for i in range(2, num):
        if num % i == 0:
            flag = False
            break
    if flag:
        l.append(num)
    else:
        pass
print("1~100以内的素数有:")
print(l)
i = 1
while i < len(l):
    if l[i] - l[i - 1] == 2:
        print("{}和{}是孪生数".format(l[i], l[i - 1]), end=" ")
        if i == 6 or i == 10:
            print(" ")
            
    i += 1


三:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

ls = [1,2,3,4,5,6,7,8,9]
num_min = ls[0]
num_sum = 0
for i in range (1,len(ls)):
    if num_min > ls[i]:
        num_min = ls[i]
    else:
        pass
print ("最小值:",num_min)
for i in ls:
    num_sum += i
print ("和:",num_sum)
num_aver = num_sum / len(ls)
print ("平均数:",num_aver)
运行结果:

四:将list中的重复数据去重,至少使用两种方案

方法一:
ls=[1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9]
for i in ls:
     li = list(set(ls))
print(f'去重后的list为:{li}')
方法二:
lx = [1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9]
li = []
for i in lx:
    if i not in li:
        li.append(i)
print('列表lx去重后的元素为:', li)
运行结果:

五:两个列表进行合并操作

lx = [1,3,5,7,9]
ly = [2,4,6,8,10]
print('合并后的列表为%s'%(lx+ly))
运行结果:


六:使用列表判断一个列表是否在另外一个列表中

lx = [1,2,3,4,5,6,7,8]
ly = [111,22,33,54,55,66,77,9]
for i in lx:
    if i not in ly:
        print("两个列表没有重合")
        break
    else:
        print("两个列表有重合")
        break

运行结果:


七:列表的反转  列表的排序

lx = [1,3,4,6,5,7,8]
for i in lx:
    llx = list(reversed(lx))
print('反转后的列表为:%s'%llx)
llx.sort()
print('排序后的列表为:%s'%llx)
运行结果:


八:如何将0-10随机存入列表中    

import random



lx = []
for i in range(10):
    lx.append(random.randint(0, 10))
print('添加后的元素为:%s' % lx)
运行结果:


九:存在一个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)

运行结果:、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值