python练习4

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值