import random num = 0 coins = [10, 8, 5, 3, 27, 99] for c in coins: if c % 2 ==0: num += c // 2 else: num += c // 2 + 1 print(f"用户最少需要{num}次,可以拿完硬币")
primes = [] for i in range(2,101): flag = True for j in range(2,i // 2): if i % j == 0: flag = False break if flag: primes.append(i) index = 0 print(primes) while index < len(primes) - 1: first = primes[index] second = primes[index + 1] if second- first == 2: print(f"{first}和{second}之间是孪生素数") index += 1
注意: 素数就类似于质数,所以在判断是否是孪生数之前就要判断一下是否是质数
A.使用opi系统
print(f"最大值是{max(arr)}") print(f"最小值是{min(arr)}") print(f"和值是{sum(arr)}") print(f"平均值是{sum(arr) / len(arr)}")
B.不使用opi系统
arr_max = arr[0] arr_min = arr[0] arr_sum = 0 for i in arr: if i > arr_max: arr_max = i if i < arr_min: arr_min = i arr_sum += i print(f"最大值{arr_max}") print(f"最小值{arr_min}") print(f"和值{arr_sum}") print(f"平均值{arr_sum / len(arr)}")
A.第一种
list_1 = [1,3,4,6,8,2,3] result = list(set(list_1)) print(result)
优点:操作简单;
缺点:使用set方法无法保证去重后的顺序
B.第二种
list_1 = [1,3,4,6,8,2,3] list_2 = list(set(list_1)) list_2.sort(key = list_1.index) print(list_2)
使用位置坐标来去重
A.第一种
list_1 = [1,2,3,4] list_2 = [2,3,4,5,6] list_1.extend(list_2) print(list_1)
B.第二种
list_1 = [1,2,3,4] list_2 = [2,3,4,5,6] list_1 += list_2 print(list_1)
注意:在使用
+=
或extend()
方法合并列表时,会直接在第一个列表中添加第二个列表的元素,并不会创建新的列表C.第三种
list_1 = [1,2,3,4] list_2 = [2,3,4,5,6] merged_list = list_1 + list_2 print(merged_list)
注意:merged也可以被concat替用。两者都是python中常用与列表合并的函数!
list1 = [1,2,3,4] list2 = [2,3,4,5,6,7] for i in list1: if i not in list2: print("列表1不在列表2中") break else: print("列表1在列表2中") break
注意:列表中的值要有顺序!
1.列表排序
a=[4,3,2,-43] print(sorted(a)) print(sorted(a, key=abs))#按绝对值进行排序 [-43, 2, 3, 4] [2, 3, 4, -43]
2.列表反转
ls=[2,4,6,7,89] for i in ls: ls.reverse() print("反转后的元素为:%s"%ls)
import random arr = list() for i in range(20): a = random.randint(0,10) arr.append(a) print(arr)
结果:
res = 0 arr = [1,2,3,3,4,5] for i in range(0,len(arr)): res ^= i ^ arr[i] # 0 ^= 0 ^ 1 res = 1 # 1 ^= 1 ^ 2 res = 2 # 2 ^= 2 ^ 3 res = 3 #······ print(res)
结果: