Python中列表的相关题目练习

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

coin=[10, 8, 5, 3, 27, 99]
x=0
for i in coin:
	if i%2==0:
		x+=i//2
	else:
			 x+=i//2+1
print("最少%s"%(x)+"次可以拿完硬币")

在这里插入图片描述

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

ls = []
for num in range(2,101):
	flag = True
	for i in range(2,num):
		if num%i == 0:
			flag = False
			break
	if flag:
		ls.append(num)
	else:
		pass
print("1~100以内的素数有:")
print(ls)
i = 1
while i < len(ls):
	if ls[i] - ls[i - 1] == 2:
		print("{}和{}是孪生数".format(ls[i], ls[i - 1]),end="\n\n")
		if i == 6 or i == 10:
			print(" ")
	i += 1
		    
            

在这里插入图片描述

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

ls=[10,20,25,45,50,55,13,23]
max_num=25
for i in ls :
	if i>max_num:
	    max_num = i
print("最大值为:%s"%max_num)

# 最小值
min_num = 55
for i in ls:
	if i < min_num:
		min_num = i
print("最小值是:%s"%min_num)

# 平均值
avg_num=0
for i in ls :
	avg_num+=i
print("平均值是:%s"%(avg_num/len(ls)))

# 和
sun_num=0
for i in ls :
	sun_num+=i
print("平均值是:%s"%(sun_num))

在这里插入图片描述

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

方法一用set消除重复元素
ls =[10,20,25,20,60,65,25]
for  i in ls :
	ls2=list(set(ls))
print("去重后的元素为:%s"%ls2)

# 方法二:
ls=[1,3,3,5,6,6,7]
ls2=[]
for i in ls:
	  if  i  not in  ls2:
		  ls2.append(i)
print("去重后的元素为:%s"%ls2)

在这里插入图片描述

五、两个列表进行合并操作

ls1=[1,2,3,4,5,6]
ls2=[7,8,9,10,11]
print('合并后的列表为:%s'%(ls1+ls2))

# 方法二
ls1.extend(ls2)
print('合并后的列表为:%s'%ls1)

方法三
ls1.append(ls2)
print('合并后的列表为:%s'%ls1)

在这里插入图片描述

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

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

在这里插入图片描述

七、列表的反转 列表的排序

ls=[1,56,25,35,84]
for i in ls:
	ls.reverse()
print("反转后的元素为:%s"%ls)

ls2=[1,55,26,34,8,-1]
ls2.sort()
print("排序后的元素为:%s"%ls2)

在这里插入图片描述

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

import random
ls=[]
for i in range(1,11):
	num=random.randint(1, 11)
	ls.append(num)
print("添加后的元素为:%s"%ls)

在这里插入图片描述

九、完成一个登录注册案例(要求使用容器保存数据)

users=[]
while True:
			print("欢迎进入到用户注册页面")
			username = input("请输入用户名称:")
			password = input("请输入用户密码:")
			confirm_password = input("请再次确认密码:")
			if username == None or len(username) == 0:
				print("对不起,用户为空")
				continue
			flag = False
			for u in users:
				if u.get("username") == username:
					print("对不起,该用户已经存在,请重新注册")
					flag = True
					break
			if flag:
				continue
			if len(password) < 6:
				print("对不起,密码长度不能少于6位")
				continue
			if password != confirm_password:
				print("两次密码不一致")
				continue

			user = {"username": username, "password": password}
			users.append(user)
			print("用户注册成功,请登录")
			break

在这里插入图片描述

十、使用控制台,购买英雄的界面

users=[]
from secrets import choice
print("\t\t英雄联盟商城登录界面")
print(
       '''
                      英雄联盟商城登录界面

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~

			1. 用户登录
	
			2. 新用户注册

			3. 退出系统

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
'''
)
choice=int(input("(温馨提示)请输入您的选项:"))
if choice==1:
        print("欢迎进入到用户登录页面")
username = input("请输入用户名称:")
password = input("请输入用户密码:")
for user in users:
	if user["username"] == username and user.get("password") == password:
				print("恭喜您,{},登录成功".format(username)+ ''' 
                                 英雄商城英雄列表

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~

编号  姓名     昵称    价格   折扣  库存  描述

1     纳尔   迷失之牙  3500   9.5   100  丛林不会原谅盲目与无知

2     锐雯   放逐之刃  4000   9.5   100  她是残忍高效的战士  

3     薇恩   暗夜猎手  3500   9.56  100  这个世界不想人们想象的那么美好

4     扎克   生化魔人  3000   9.8   100  即使你没有脊柱,你也必须站起来

5     杰斯  未来守护者 2500   6.5   100  武装着睿智与魅力,你的选择没有错

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
''')
choice==int(input("请您选择商品:"))
a=int(input("请输入商品价格:"))
num=int(input("请输入购买数量:"))
c=float(input("请输入您购买的商品的折扣:"))
payways=str(input("请您选择以下的付款方式:支付宝、微信、或者是银行卡:"))
if     payways=="支付宝":
              print("您选择的支付方式为:支付宝,您需要支付的金额为:%s"%(a*num*c/10))
elif   payways=="微信":
              print("您选择的支付方式为:微信,您需要支付的金额为:%s"%(a*num*c/10))
elif   payways=="银行卡":
              print("您选择的支付方式为:银行卡,您需要支付的金额为:%s"%(a*num*c/10))

else:
		print("对不起,登录失败,请重新登录~~")
if choice==2:
			print("欢迎进入到用户注册页面")
			username = input("请输入用户名称:")
			password = input("请输入用户密码:")
			confirm_password = input("请再次确认密码:")
if username == None or len(username) == 0:
	print("对不起,用户为空")
flag = False
for u in users:
	if u.get("username") == username:
					print("对不起,该用户已经存在,请重新注册")
					flag = True
					break
	if flag:
				continue
	if len(password) < 6:
				print("对不起,密码长度不能少于6位")
				continue
	if password != confirm_password:
				print("两次密码不一致")
				continue

	user = {"username": username, "password": password}
	users.append(user)
	print("用户注册成功,请登录")
	print()
else :
    print("退出系统")

在这里插入图片描述

  • 20
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 创建一个字典,包含你的姓名、年龄、性别和国籍。 ```python my_info = {'name': 'Alice', 'age': 25, 'gender': 'female', 'nationality': 'China'} ``` 2. 给定一个字典,输出它的所有键和值。 ```python my_dict = {'a': 1, 'b': 2, 'c': 3} for key, value in my_dict.items(): print(key, value) ``` 3. 给定一个字典,输出它的所有键。 ```python my_dict = {'a': 1, 'b': 2, 'c': 3} for key in my_dict.keys(): print(key) ``` 4. 给定一个字典,输出它的所有值。 ```python my_dict = {'a': 1, 'b': 2, 'c': 3} for value in my_dict.values(): print(value) ``` 5. 给定一个字典,删除键为 'a' 的键值对。 ```python my_dict = {'a': 1, 'b': 2, 'c': 3} del my_dict['a'] ``` 6. 给定两个字典,将它们合并为一个字典。 ```python dict1 = {'a': 1, 'b': 2} dict2 = {'c': 3, 'd': 4} merged_dict = {**dict1, **dict2} ``` 7. 给定一个字典,判断它是否包含键 'a'。 ```python my_dict = {'a': 1, 'b': 2, 'c': 3} if 'a' in my_dict: print('Yes') else: print('No') ``` 8. 给定一个字典,判断它是否包含值为 2 的键值对。 ```python my_dict = {'a': 1, 'b': 2, 'c': 3} if 2 in my_dict.values(): print('Yes') else: print('No') ``` 9. 给定一个字典,返回它的长度(即键值对的个数)。 ```python my_dict = {'a': 1, 'b': 2, 'c': 3} length = len(my_dict) ``` 10. 给定一个字典,将它的所有值加上10。 ```python my_dict = {'a': 1, 'b': 2, 'c': 3} for key in my_dict: my_dict[key] += 10 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值