2021-11-07--Three

第七天

作业1:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
代码如下:
num=int(input(“请输入硬币数”))
def yibi(n):
d={1:1,2:2}
if n in d.keys():
return d[n]
else:
return yibi(n-1)+yibi(n-2)

print(yibi(num))
结果:
请输入硬币数12
233

作业2:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
代码如下:
ls = []
for i in range(2, 101):
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if flag:
ls.append(i)

index = 0
print(ls)
while index < len(ls) - 1:
first = ls[index]
second = ls[index + 1]
if second - first == 2:
print(f"{first}和{second}之间是孪生素数")
index += 1
结果如下:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
3和5之间是孪生素数
5和7之间是孪生素数
11和13之间是孪生素数
17和19之间是孪生素数
29和31之间是孪生素数
41和43之间是孪生素数
59和61之间是孪生素数
71和73之间是孪生素数

作业3:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
lt=list(input(“请输入二个以上的数字:”))
for i in range(len(lt) - 1):
for j in range(len(lt) - 1 - i):
if lt[j] > lt[j + 1]:
lt[j], lt[j + 1] = lt[j + 1], lt[j]
print(lt)
结果:
请输入二个以上的数字:4
[‘4’]

作业4:将list中的重复数据去重,至少使用两种方案
代码如下:
#类型转化集合set(无序,不能重复,不存在下标)
lt=[1,21,2,12,1,23,4,5,5]
s=set(lt)
l=list(s)
print(l)
#list下标查看进行比查看
for i in lt:
for j in range(len(lt) - i):
if lt[j] == lt[j + 1]:
lt.pop(j)
print(“输出重复的数:%d”%i)
结果:
[1, 2, 4, 5, 12, 21, 23]

作业5:两个列表进行合并操作
代码如下:
list1 = [91, 95, 97, 99]
list2 = [92, 93, 96, 98]
for i in range(4):
list1.append(list2[i])
print(list1)
结果如下:
[91, 95, 97, 99, 92, 93, 96, 98]

作业6: 使用列表判断一个列表是否在另外一个列表中
代码如下:
a = [1,2,3]
b = [2,3,4,5]
inter = list(set(a).intersection(set(b)))
print(inter)
结果如下:
D:\pytnon\python.exe D:/daima/99.py
[2, 3]

作业7:列表的反转 列表的排序
代码如下:
list = [2, 1, 3, 5, 4]
list.reverse()
print(list)
list = [2, 1, ‘hi’, 5, ‘world’]
list.reverse()
print(list)
结果如下:
[4, 5, 3, 1, 2]
[‘hi’, 5, ‘hello’, 1, 2]

作业8:如何将0-10随机存入列表中
代码如下:
import random
ls = []
for i in range(10):
ls.append(random.randint(0, 10))
print(ls)
结果如下:
[2, 6, 10, 3, 1, 4, 3, 8, 0, 4]

第八天

作业1:完成一个登录注册案例(要求使用容器保存数据)
代码如下:
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("输入有误,请重新选择")

结果:
欢迎登录我们的用户管理系统
1、用户注册
2、用户登录
3、退出系统
请选择您的操作:1
欢迎进入到用户注册页面
请输入用户名称:李白
请输入用户密码:libai
请再次确认密码:libai
用户注册成功,请登录
欢迎登录我们的用户管理系统
1、用户注册
2、用户登录
3、退出系统
请选择您的操作:2
欢迎进入到用户登录页面
请输入用户名称:李白
请输入用户密码:libai
恭喜您,李白,登录成功
欢迎登录我们的用户管理系统
1、用户注册
2、用户登录
3、退出系统
请选择您的操作:3

作业2:给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
代码如下:
ls = [1, 3, 5, 3, 4, 100, -21, 1, 6]
for i in range(len(ls) - 1):
for j in range(len(ls) - 1 - i):
if ls[j] > ls[j + 1]:
ls[j], ls[j + 1] = ls[j + 1], ls[j]
print(ls)
结果:
[-21, 1, 1, 3, 3, 4, 5, 6, 100]

作业3:求 a+aa+aaa+…+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
代码如下:
num = input(“请输入要相加的数字:”)
count = int(input(“请输入想加的个数:”))
a = []
s = 0
for i in range(1,count+1):
a.append(numi)
s += int(num
i)
print(f"{s}={’+’.join(a)}")
结果
请输入要相加的数字:9
请输入想加的个数:3
1107=9+99+999

作业4:合并两
个有序数组,合并后还是有序列表
代码如下:
ls1 = [1, 2, 3, 4, 5, 6]
ls2 = [2, 3, 4, 5, 6, 7, 8]
ls = ls1 + ls2
print(ls)
结果:
[1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 7, 8]

作业5:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
代码如下:
def sortArray(A:list) -> list:
reorder = []
for i in A:
if i % 2 == 0:
reorder.append(i)
for i in A:
if i % 2 != 0:
reorder.append(i)
return reorder

print(sortArray([3,1,2,4]))
结果
[2, 4, 3, 1]

作业6:将10进制数据转换为二进制,并且统计其中的0和1的数量
代码如下:
def duble():
n=input(‘请输入终止值:’)
a=[]
i=1
while i<=int(n):
d={}
b=list(bin(i))
m=0
for j in b:
if j==‘1’:
m+=1
d[i]=m
a.append(d)
i+=1
print(a)
duble()
def duble1():
n=input(‘请输入要查询的数:’)
m=0
for j in list(bin(int(n))):
if j==‘1’:
m+=1
print(m)
duble1()
duble1()
结果
请输入终止值:12
[{1: 1}, {2: 1}, {3: 2}, {4: 1}, {5: 2}, {6: 2}, {7: 3}, {8: 1}, {9: 2}, {10: 2}, {11: 3}, {12: 2}]

作业7:给定一个数组,已知数组中的元素都是成对出现,
现在数组中只有一个元素没有成对,请找出这个元素。
[1,3,1,2,2,8,8]
代码如下:
nums = [1,3,1,2,2,8,8]
nums_dict={}
for i in nums:
nums_dict.setdefault(i,0)
nums_dict[i]+=1
for i in nums_dict:
if nums_dict[i]==1:
print(f’只出现一次的数字为{i}’)
结果
只出现一次的数字为3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值