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