作业1:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
def is_prime(num):
""" 判断一个数是否是质数"""
for i in range(2, num // 2 + 1):
if num % i == 0:
return False
return True
def twin_prime(num):
primes = []
for i in range(2, num + 1):
if is_prime(i):
primes.append(i)
# 判断是否是孪生素数
index = 1
while index < len(primes):
if primes[index] - primes[index - 1] == 2:
print(f"{primes[index - 1]}和{primes[index]}这两个素数是孪生素数")
index += 1
twin_prime(100)
作业2:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
ls = []
for i in range(5):
num = int(input("请输入一个整数:"))
ls.append(num)
print(ls)
# 使用系统API
# print(f"列表中的最大值是{max(ls)}")
# print(f"列表中的最小值是{min(ls)}")
max_value = ls[0]
min_value = ls[0]
count = 0
for i in ls:
if i > max_value:
max_value = i
if i < min_value:
min_value = i
count += i
print(f"列表中的最大值是{max_value}")
print(f"列表中的最小值是{min_value}")
print(f"列表中的平均值是{count / len(ls)}")
作业3:将list中的重复数据去重,至少使用两种方案
ls = [10,2,3,2,3,65,4,5,74,8,7,6,5,4,]
def move_duplicate1(arr):
# 使用系统API
new_ls = list(set(arr))
return new_ls
def move_duplicate2(arr):
"""自己实现了去重方案"""
new_arr = []
for i in arr:
if i not in new_arr:
new_arr.append(i)
return new_arr
new_ls = move_duplicate2(ls)
print(new_ls)
作业4:两个列表进行合并操作
a=[1,2,3,4]
b=[5,6,7,8]
a.extend(b)
print(a)
作业5: 使用列表判断一个列表是否在另外一个列表中
listA = ['x', 'y', 't']
listB = ['t', 'z','a','x', 'y', 't']
print("listA元素: ")
print(', '.join(map(str, listA)))
print("给定listB元素:")
print(', '.join(map(str, listB)))
res = ', '.join(map(str, listA)) in ', '.join(map(str, listB))
if res:
print("List A is part of list B")
else:
print("List A is not a part of list B")
作业6:列表的反转 列表的排序
li = [1, 2, 3]
li.reverse()
print(li)
cars=['bmw','audi','toyota','subaru']
cars.sort()
print(cars)
作业7:如何将0-10随机存入列表中
import random
ls = []
for i in range(10):
ls.append(random.randint(0, 10))
print(ls)
作业8:完成一个登录注册案例(要求使用容器保存数据)
import sys
import getpass
# 保存所有用户
users = []
def main_menu():
print("~ * ~" * 10)
print("\t\t\t 1、用户注册")
print("\t\t\t 2、用户登录")
print("\t\t\t 3、退出系统")
return input("请输入您的操作:")
def user_exists(username):
for user in users:
# {"username": "ljh", "password": "1234"}
if user.get("username") == username:
return user
return None
def reg():
while True:
username = input("请输入用户名称:")
password = getpass.getpass("请输入用户密码:")
confirm_pwd = getpass.getpass("请再次输入密码:")
# 数据校验
if username == None or username == "":
print("对不起,用户名不能为空!!")
continue
if len(password) < 3:
print("对不起,密码不能少于3位!!")
continue
if password != confirm_pwd:
print("对不起,两次密码不一致,请重新输入!!")
continue
# 用户名称是否重复
if user_exists(username) != None:
print("对不起,该用户名称已经存在,请重新注册!!")
continue
# 保存用户
user = {"username": username, "password": password}
users.append(user)
chioce = input("输入N/n则退出到上一个界面,否则继续注册")
# if choice == "N" or chioce == "n":
if choice.upper() == "N":
break
def login():
while True:
username = input("请输入用户名称:")
password = getpass.getpass("请输入用户密码:")
user = user_exists(username)
if user is not None:
if user.get("password") == password:
print("登录成功!!")
print("欢迎到您的个人中心页面!!")
else:
print("对不起,密码错误")
else:
print("对不起,没有这个用户")
if __name__ == '__main__':
while True:
print(users)
choice = main_menu()
if choice == "1":
# 注册
reg()
elif choice == "2":
# 登录
login()
elif choice == "3":
sys.exit()