有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
ls=[10,8,5,3,27,99]
x=0
for i in ls:
if i % 2 ==0:
x+=i//2
else:
x+=i//2+1
print(x)
作业2:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
‘’’
如果两个素数之差为2,
这样的两个素数就叫作"孪生数",
找出100以内的所有"孪生数".
#找质数
def PrimeNum(num):
for i in range (2,num//2 + 1):
#循环,只需要循环num的一半即可,
if num % i == 0:
#能整除的都不是质数,说明还有除了1和自身外的因数
return False
return True
#循环完之后返回的都是质数,注意不能放在循环里
#判断孪生数
def twin_num(num):
ls=[]
for i in range (2,num+1):
#循环区间内每一个数
if PrimeNum(i):
#判断是不是质数,调用函数
ls.append(i)
print(ls)
#接着判断孪生数
index = 0
while index < len(ls):
if ls[index] - ls[index - 1] == 2:
print(f"{ls [index]}和{ls [index-1]}是孪生数")
index+=1
twin_num(100)
作业3:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
ls=[]
for i in range (10):
num = int (input("请输入一个数: "))
ls.append(num)
print(ls)
def text(arr):
max_num = arr[0]
min_num = arr[0]
count = 0
for i in ls:
if i > max_num:
max_num = i
if i < min_num:
min_num = i
count += i
print(f"最大值是{max_num}")
print(f"最小值是{min_num}")
print(f"平均值是{count/len(arr)}")
text(ls)
作业4:将list中的重复数据去重,至少使用两种方案
#利用系统api set转()换
ls = [1, 1, 1, 2, 2, 2, 3, 3, 4]
new_ls = set(ls)
print(new_ls)
# 循环
def de_weight(arr):
'''
做一个去重函数,新建立一个空列表num_arr,遍历ls
做判断,只要不在num_arr里就添加
'''
num_arr = []
for i in ls :
if i not in num_arr:
num_arr.append(i)
de_weight(ls)
作业5:两个列表进行合并操作
两个列表进行合并操作
a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b)
print(a)
作业6: 使用列表判断一个列表是否在另外一个列表中
a = [1,2,3]
b = [2,3,4,5]
inter = list(set(a).intersection(set(b)))
print(inter)
作业7:列表的反转 列表的排序
a = [1, 2, 6, 5, 8, 45, 56, 49]
#排序
a.sort()
print(a)
#反转
a.reverse()
print(a)
作业8:如何将0-10随机存入列表中
import random
ls = []
for i in range(10):
ls.append(random.randint(0,10))
print(ls)
作业10:完成一个登录注册案例(要求使用容器保存数据)
if choice == "1":
while True:
# 注册 将用户的名称和密码保存到服务器上
username = input("请输入用户名称:")
password = input("请输入用户密码:")
confirm_pass = input("请再次输入用户密码:")
# 数据校验
# 1、首先验证用户名称不能为空
if username == "" or username == None:
print("对不起,用户名称为空")
continue
# 2、验证用户名称不能重复
flag = True
for user in users:
if user.get("username") == username:
flag = False
if not flag:
print("对不起,该用户名称已经存在,请重新注册!!")
continue
# 3、密码小于3位
if len(password) < 3:
print("对不起,密码长度不能少于3位")
continue
if confirm_pass != password:
print("对不起,两次密码不一致")
continue
# 将数据保存下来
# TODO 密码加密问题
user = {"username": username, "password": confirm_pass}
users.append(user)
print("注册成功")
break
elif choice == "2":
username = input("请输入用户名称:")
password = input("请输入用户密码:")
flag = False
for user in users:
# if user.get("username") == username:
# if user.get("password") == password:
# print("恭喜您,登录成功")
# else:
# print("密码错误")
# else:
# print("用户名称错误")
if user.get("username") == username and user.get("password") == password:
flag = True
login_user = user
break
if flag:
print("恭喜您,登录成功")
else:
print("用户名称或者密码错误,登录失败")
elif choice == "3":
for u in users:
print(f"用户名称是{u.get('username')}")
elif choice == "4":
exit = input("您确定要退出系统吗?(Y/N):")
if exit == "Y" or exit == "y":
# 退出系统
sys.exit()