关于python中列表的练习题

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

count = 0
l = [10, 8, 5, 3, 27, 99]
for i in l:
    a = i%2
    if a == 0:
        count = i // 2 + count
    else:
        count = i // 2 + count + 1
print('最少{}次拿完'.format(count))

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

index = []
for j in range (2,101):
    i=2
    while i<j:
        if j%i==0:
            break
        i=i+1
    else:
        index.append(j)
print (index)
i=0
while i < index.index(max(index)):   //也可以使用len(index)来获取列表的长度,此处使用的方法是获取列表中最大索引值
    if (index[i+1]) - (index[i]) == 2:
        print('{}和{}是孪生数'.format(index[i],index[i+1]))
    i += 1

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

#第一种方法
a = [1,2,3,5,4]
print(max(a))
print(min(a))
print(sum(a))
print(sum(a)/len(a))
#第二种方法
a = [1,2,8,5,6]
imax = a[0]
imin = a[0]
count = 0
i = 0
for num in a :
    if num > imax:
        imax = num
    if num < imin:
        imin = num
    count += num
    i += 1
print('列表的最小值为{}'.format(imin))
print('列表的最大值为{}'.format(imax))
print('列表的总和为{}'.format(count))
print('列表的平均值为{}'.format(count/i))

作业4:将list中的重复数据去重,至少使用两种方案

#第一种
a = [1,2,3,4,5,1,2,3,4,5]
set(a)
#第二种
a = [1,1,2,3,4,4]
b = []
for i in a:
    if i not in b:
        b.append(i)
print(b)
#第三种
orgList = [1,0,3,7,7,5]
formatList = list(set(orgList))
formatList.sort(key=orgList.index)
print (formatList)

作业5:两个列表进行合并操作

list1 = [1,2,3,4,5]
list2 = ['a','b','c','d']
list1.extend(list2)
print(list1)

作业6: 使用列表判断一个列表是否在另外一个列表中

a = [1, 2, 3, 4, 5]
b = [3, 4, 5]
d = [True for c in b if c not in a]
if d:
  print ("a不包含b的所有元素")
else:
  print ("a包含b的所有元素")

作业7:列表的反转 列表的排序

a = [1,2,3,5,4]
a.reverse()   //将列表倒序
print(a)

作业8:如何将0-10随机存入列表中

import random


randomnum = [random.randint(0,11) for i in range(10)]
print(randomnum)

作业10:完成一个登录注册案例(要求使用容器保存数据)

import sys

users = []
while True:
    print("欢迎登录我们的用户管理系统")
    print("\t\t 1、用户注册")
    print("\t\t 2、用户登录")
    print("\t\t 3、退出系统")
    choice = input("请选择您的操作:")

    if choice == "1":
        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) < 3:
                print("对不起,密码长度不能少于3位")
                continue
            if password != confirm_password:
                print("两次密码不一致")
                continue
            user = {"username": username, "password": password}
            users.append(user)
            print("用户注册成功,请登录")
            break
    elif choice == "2":
        print("欢迎进入到用户登录页面")
        username = input("请输入用户名称:")
        password = input("请输入用户密码:")
        for user in users:
            if user["username"] == username and user.get("password") == password:
                print("恭喜您,{},登录成功".format(username))
            else:
                print("对不起,登录失败,请重新登录~~")

    elif choice == "3":
        sys.exit()
    else:
        print("输入有误,请重新选择")
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值