python第三次作业

拿硬币

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


# 定义如题的带有5个元素的列表,表示五堆硬币
list = [10,8,5,3,27,99]
# 定义一个变量用来记录拿的次数
get =0
# 将列表遍历,如果元素是双数则只需拿除二次即可,如为单数则需+1次
for i in list:
  if i % 2 == 0:
    get += i//2
  else:
    get +=i//2+1
print(get)

孪生数

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


import math


# 定义一个空的数组,用于存放质数
prime=[]
# 找出质数并将质数放入数组中
for i in range(2,101):
  flag = True
  for j in range(2,int(math.sqrt(i))+1):
    if i%j == 0:
      flag = False
      break
    
  if flag:
    prime.append(i)
  
# 对数组进行遍历,找到孪生数
for index in range(0,len(prime)-1):
  if prime[index]+2==prime[index+1]:
    print(f"{prime[index]} {prime[index+1]}||",end="")




求最值

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


# 定义一个列表
ran_num = [56,45,90,89,132,78,52,34,45,2,145,65,76]
# 对数组进行遍历求最值
max = ran_num[0]
min = max
num_sum = 0
num_avg = 0
for i in ran_num:
  # 求最大值
  if max < i:
    max = i 
  #求最小值 
  if min > i:
    min = i 
    # 求和
  num_sum += i
  # 求平均值
num_avg = num_sum/len(ran_num)
print(max,min,num_sum,int(num_avg))

数据去重

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


# 定义一个带重复元素的list
list_num = [2,2,3,4,2,4,0,4,5,6,7,8,96]
# 方法一:利用哈希表的无序不重复
set_num = set(list_num)
list_num = list(set_num)
print(list_num)

#方法二:对list中元素与下一位元素比较,找到重复元素后,将该元素移除list
i = 0
while i 

列表合并

# 两个列表进行合并操作  


# 定义两个列表
list_1 = [5,5,4,3,2,4,75,87,5,9,0,2,9,]
list_2 = [3,2,1,53,534,23,4,5,6,3,4,22,4]
# 将两个表合并
# 方法一:用extend函数
list_1.extend(list_2) 
print(list_1)
# 方法二:对list_2遍历,并添加到list_1的尾部
for i in list_2:
  list_1.append(i)
print(list_1)

判断两个列表是否包含 

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


# 定义两个列表
list_1 = [1,2,3,4,3,5,6,7,4]
list_2 = [1,4,6,3,5,3,5]

# 将两个列表转成集合来判断
set_1 = set(list_1)
set_2 = set(list_2)

# 求得两个集合的并集
union = set_1.intersection(set_2)

# 将并集和两个数组比较,判断
if union == set_1:
  print("list_1在list_2中")
elif union == set_2:
  print("list_2在list_1中")
else:
  print("两个集合没有交集")


列表的反转  列表的排序

# 列表的反转  列表的排序


# 定义一个列表
list = [1,2,3,4,5,3,2,4]
# 列表的反转
i = 0
j = len(list)-1
while i list[j]:
      list[i],list[j] = list[j],list[i]
print(list)

0~10的随机数添加到列表

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


import random


# 定义一个列表,用于存储数据
list1 = []
# 将0~9的随机数循环十次添加到列表的尾部
for i in range(10):
  random_num =random.randint(0,10)
  list1.append(random_num)
print(list1)


在连续列表中找重复值

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


# 定义一个如题列表:其中重复值是“7”
list1 = [1,2,3,4,5,6,7,7,8,9,]
# 对list1遍历找到重复数
for i in range (0,len(list1)-1):
  for j in range (i+1,len(list1)):
    if list1[i] == list1[j]:
      print(list1[i])
      break

你可能感兴趣的:(1024程序员节)