python基础—“容器”练习 2021-11-08

1,如果两个素数之差为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

python基础—“容器”练习 2021-11-08_第1张图片
2,给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

def choose(s):
    sum = 0
    all = 0
    maxnum = max(s)
    minnum = min(s)
    for i in s:
        sum = sum + 1 #元素个数
        all = all + i
    average = all / sum
    print(str("元素个数{0},最大值{1},最小值{2},元素和{3},平均值{4}").format(sum, maxnum, minnum, all, average))
def main():
    s = [9,7,8,3,2,1,55,6]
    choose(s)
main()

在这里插入图片描述
3,将list中的重复数据去重,至少使用两种方案

# 第一种
list1=[11,22,11,22,33,44,55,55,66]
print(list1)
print(list(set(list1)))

# 第二种
list1=[11,22,11,22,33,44,55,33,66]
list2=[]
for i in list1:
    if i not in list2:
        list2.append(i)
print(list1)
print(list2)

在这里插入图片描述
4,两个列表进行合并操作

lt1=[1,2,3,4,5,6]
lt2=[2,3,4,5,6,7,8]
lt3=lt1+lt2
print(lt3)

在这里插入图片描述
5, 使用列表判断一个列表是否在另外一个列表中

lt1=[1,2,3,4,5,6]
lt2=[2,3,4,5,6,7,8]
lt3=lt1+lt2
if len(lt1) <= len(lt3):
    print("存在")
    
else:
    print("不存在")

在这里插入图片描述
6,列表的反转 列表的排序

lt1=[1,23,46,8,93,6,3,4,5,6]
lt2=["A","c","d","G"]
#排序
lt1.sort() 
print(lt1)
lt2.sort(key=None)#英文排序
print(lt2)
#反转
lt1.reverse()
print(lt1)

python基础—“容器”练习 2021-11-08_第2张图片
7,如何将0-10随机存入列表中

import random

ls = []

for i in range(10):
	ls.append(random.randint(0, 10))
print(ls)

在这里插入图片描述
8,完成一个登录注册案例(要求使用容器保存数据)

#完成一个登录注册案例
import sys


# users保存所有注册成功的用户
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
			# 密码长度不能少于3位
			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("请输入用户密码:")

		# 判断用户名和密码是否存在于users
		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("输入有误,请重新选择")
		

python基础—“容器”练习 2021-11-08_第3张图片
9,给定一个10个元素的列表,请完成排序(注意,不要使用系统api)

lt=[1,5,4,100,-21,6,0,120,520,1314]
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)

在这里插入图片描述
10,合并两个有序数组,合并后还是有序列表、

ls1 = [1,3,5,7,9]
ls2 = [0,2,4,6,8]
ls3 = ls1+ls2
print(f"排序前{ls3}")
ls3.sort()
print(f"排序后{ls3}")

在这里插入图片描述
11,将10进制数据转换为二进制,并且统计其中的0和1的数量

num = int(input("请输入一个整数:"))

# 可以通过系统api完成转换
res = bin(num)
res = res[2:]

z_count = 0
o_count = 0
for i in res:
	if i == "0":
		z_count += 1
	else:
		o_count += 1


print(f"{num}转换二进制后,0有{z_count},1有{o_count}")

在这里插入图片描述
12,给定一个数组,已知数组中的元素都是成对出现,现在数组中只有一个元素没有成对,请找出这个元素。 [1,3,1,2,2,8,8]

ls = [1,3,1,2,2,8,4,8,4]

res = 0
for i in ls:
	res ^= i

print(f"这个列表中,没有重复出现的数是{res}")

在这里插入图片描述

你可能感兴趣的:(python,开发语言)