【无标题】

有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值