• 第五次作业


    1.有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币[10, 8, 5, 3, 27, 99]

    1. import random
    2. num = 0
    3. coins = [10, 8, 5, 3, 27, 99]
    4. for c in coins:
    5. if c % 2 ==0:
    6. num += c // 2
    7. else:
    8. num += c // 2 + 1
    9. print(f"用户最少需要{num}次,可以拿完硬币")

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

     

    1. primes = []
    2. for i in range(2,101):
    3. flag = True
    4. for j in range(2,i // 2):
    5. if i % j == 0:
    6. flag = False
    7. break
    8. if flag:
    9. primes.append(i)
    10. index = 0
    11. print(primes)
    12. while index < len(primes) - 1:
    13. first = primes[index]
    14. second = primes[index + 1]
    15. if second- first == 2:
    16. print(f"{first}{second}之间是孪生素数")
    17. index += 1

    注意: 素数就类似于质数,所以在判断是否是孪生数之前就要判断一下是否是质数

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

    A.使用opi系统

    1. print(f"最大值是{max(arr)}")
    2. print(f"最小值是{min(arr)}")
    3. print(f"和值是{sum(arr)}")
    4. print(f"平均值是{sum(arr) / len(arr)}")

    B.不使用opi系统

    1. arr_max = arr[0]
    2. arr_min = arr[0]
    3. arr_sum = 0
    4. for i in arr:
    5. if i > arr_max:
    6. arr_max = i
    7. if i < arr_min:
    8. arr_min = i
    9. arr_sum += i
    10. print(f"最大值{arr_max}")
    11. print(f"最小值{arr_min}")
    12. print(f"和值{arr_sum}")
    13. print(f"平均值{arr_sum / len(arr)}")

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

    A.第一种

    1. list_1 = [1,3,4,6,8,2,3]
    2. result = list(set(list_1))
    3. print(result)

            优点:操作简单;

            缺点:使用set方法无法保证去重后的顺序

    B.第二种

    1. list_1 = [1,3,4,6,8,2,3]
    2. list_2 = list(set(list_1))
    3. list_2.sort(key = list_1.index)
    4. print(list_2)

            使用位置坐标来去重

     5.两个列表进行合并操作

    A.第一种

    1. list_1 = [1,2,3,4]
    2. list_2 = [2,3,4,5,6]
    3. list_1.extend(list_2)
    4. print(list_1)

    B.第二种

    1. list_1 = [1,2,3,4]
    2. list_2 = [2,3,4,5,6]
    3. list_1 += list_2
    4. print(list_1)

    注意:在使用 += 或 extend() 方法合并列表时,会直接在第一个列表中添加第二个列表的元素,并不会创建新的列表

    C.第三种

    1. list_1 = [1,2,3,4]
    2. list_2 = [2,3,4,5,6]
    3. merged_list = list_1 + list_2
    4. print(merged_list)

    注意:merged也可以被concat替用。两者都是python中常用与列表合并的函数!

     6.使用列表判断一个列表是否在另外一个列表中

    1. list1 = [1,2,3,4]
    2. list2 = [2,3,4,5,6,7]
    3. for i in list1:
    4. if i not in list2:
    5. print("列表1不在列表2中")
    6. break
    7. else:
    8. print("列表1在列表2中")
    9. break

    注意:列表中的值要有顺序!

     7.列表的反转  列表的排序

    1.列表排序

    1. a=[4,3,2,-43]
    2. print(sorted(a))
    3. print(sorted(a, key=abs))#按绝对值进行排序
    4. [-43, 2, 3, 4]
    5. [2, 3, 4, -43]

    2.列表反转

    1. ls=[2,4,6,7,89]
    2. for i in ls:
    3. ls.reverse()
    4. print("反转后的元素为:%s"%ls)

    8.如何将0-10随机存入列表中     

    1. import random
    2. arr = list()
    3. for i in range(20):
    4. a = random.randint(0,10)
    5. arr.append(a)
    6. print(arr)

    结果:

     9.存在一个1~n的连续列表,在其中不小心重复了一个值,请找出这个重复值

    1. res = 0
    2. arr = [1,2,3,3,4,5]
    3. for i in range(0,len(arr)):
    4. res ^= i ^ arr[i]
    5. # 0 ^= 0 ^ 1 res = 1
    6. # 1 ^= 1 ^ 2 res = 2
    7. # 2 ^= 2 ^ 3 res = 3
    8. #······
    9. print(res)

     结果:

  • 相关阅读:
    Lua专栏目录
    基于微信小程序的个人健康数据管理平台设计与实现(源码+lw+部署文档+讲解等)
    浅谈机器视觉目前的发展现状
    【饭谈-鸡血篇】自以为对,就是错。
    【Hive】语句执行顺序
    【问题解决】PlatformIO下ESP32C3工具链toolchain下载问题解决方法
    【Prometheus】Prometheus 集群与高可用
    亚马逊短视频制作需要注意什么?
    Jmeter-逻辑控制器,定时器,前置处理器,取样器
    在Eclipse 中使用 Maven 创建雅加达 EE 应用程序
  • 原文地址:https://blog.csdn.net/m0_74543941/article/details/134017533