python列表练习题1

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

count = 0

l = [10,8,5,3,27,99]

for i in l:

j = i % 2

if j == 0:

count = i // 2 +count

else:

count = i // 2 +count+1

print("最少{}次拿完".format(count))

运行结果:最少78次拿完

作业2:从键盘中输入5个学生的名字,存储到列表中,然后打印出每个学生名字中的第2个字母或中文

i = 1

stu_list = []

while i <= 5:

student = input("请输入学生的姓名:")

stu_list.append(student)

i += 1

print(stu_list)

for name in stu_list:

print("%s 的第二个字母或中文是 %s" %(name,name[1]))

作业3:如果两个素数之差为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)):

if (index[i+1])-(index[i])==2:

print("{}和{}是孪生数".format(index[i],index[i+1]))

i+=1

作业4:给定一个列表,求最大值,求最小值,求平均值、求和

第一种方法:

a = [1,2,8,5,6]

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

print(imax)

print(imin)

for number in a:

if number > imax:

imax =number

if number < imin:

imin = number

count +=number

i+=1

print('列表的最小值为{}'.format(imin))

print('列表的最大值为{}'.format(imax))

print('列表的和为{}'.format(count))

print('列表的平均值为{}'.format(count/i))

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

第一种方案:

orglist=[1,0,3,7,7,5]

formatlist =list(set(orglist))

print(formatlist)

formatlist.sort(key=orglist.index)

print(formatlist)

第二种方案:

a=[1,0,3,7,7,5]

b=[]

for c in a:

if c not in b:

b.append(c)

print(b)

第三种方案:

a=[1,0,3,7,7,5]

set(a)

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

list1 = [1,2,3,4,5]

list2 = ['a','b','c','d']

list1.extend(list2)

print(list1)

作业7:一个学校有3个办公室,现在有8位老师需要分配工位,编写程序 完成随机分配

# 定义8位老师

teacher_list = list("ABCDEFGH")

print(teacher_list)

# 定义三个空办公室

classroom_list = [[], [], []]

for name in teacher_list:

# 产生0~2 随机数

index = random.randint(0, 2)

classroom_list[index].append(name)

print(classroom_list)

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

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的所有元素")

另一种写法:

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

a = [1,2,3,5,4,4]

a.reverse() //将列表倒序

print(a)

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

import random

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

print(randomnum)

另一种写法:

import random

list =[]

for i in range(10):

n = random.randint(0,10)

list.append(n)

print(list)

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

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("输入有误,请重新选择")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值