1.控制台管理用户
import sys
users = []
login_user = None
while True:
print(“~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~”)
print(“\t\t 1、用户注册”)
print(“\t\t 2、用户登录”)
print(“\t\t 3、显示当前所有用户信息”)
print(“\t\t 4、退出系统”)
print(“~*”*10)
choice = input(“请输入您的操作:”)
if choice == “1”:
while True:
# 注册 将用户的名称和密码保存到服务器上
username = input(“请输入用户名称:”)
password = input(“请输入用户密码:”)
confirm_pass = input(“请再次输入用户密码:”)
# 数据校验
# 1、首先验证用户名称不能为空
if username == “” or username == None:
print(“对不起,用户名称为空”)
continue
# 2、验证用户名称不能重复
flag = True
for user in users:
if user.get(“username”) == username:
flag = False
if not flag:
print(“对不起,该用户名称已经存在,请重新注册!!”)
continue
# 3、密码小于3位
if len(password) < 3:
print(“对不起,密码长度不能少于3位”)
continue
if confirm_pass != password:
print(“对不起,两次密码不一致”)
continue
# 将数据保存下来
# TODO 密码加密问题
user = {“username”: username, “password”: confirm_pass}
users.append(user)
print(“注册成功”)
break
elif choice == “2”:
username = input(“请输入用户名称:”)
password = input(“请输入用户密码:”)
flag = False
for user in users:
# if user.get(“username”) == username:
# if user.get(“password”) == password:
# print(“恭喜您,登录成功”)
# else:
# print(“密码错误”)
# else:
# print(“用户名称错误”)
if user.get(“username”) == username and user.get(“password”) == password:
flag = True
login_user = user
break
if flag:
print(“恭喜您,登录成功”)
print(‘a、发表文章’)
print(‘b、修改文章’)
print(‘c、查看文章’)
choice1 = input(“请输入您的操作:”)
if choice1 == “a”:
content = str(input(‘请输入文章内容:’))
if content != 0:
print(‘写入成功’)
else:
print(‘空’)
elif choice1 == “b”:
print(‘修改文章内容’)
else:
print(“查看内容”)
break
else:
print(“用户名称或者密码错误,登录失败”)
elif choice == “3”:
for u in users:
print(f”用户名称是{u.get(‘username’)}”)
elif choice == “4”:
exit = input(“您确定要退出系统吗?(Y/N):”)
if exit == “Y” or exit == “y”:
# 退出系统
sys.exit()
2.列表排序
def sort1(arr):
arr.sort()
return arr
ls = [1,23,43,2,3,-10,99,-100,11]
ls = sort1(ls)
print(ls)
3、
def run(x,y):
while x>0 and y>0:
if x == 2 or y == 1:
return 1
elif x == 1 or y == 2:
return 1
return run(x-1,y)+run(x-0,y-1)
作业4:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
ls = [10, 12, 1, -20, 30, -100, 0, 8, 9]
print(max(ls))
print(min(ls))
print(sum(ls) / len(ls))
max_value = 10
for i in ls:
if i > max_value:
max_value = i
print(“最大值是:”, max_value)
min_value = 10
for i in ls:
if i < min_value:
min_value = i
print(“最小值是:”, min_value)
count = 0
for i in ls:
count += i
print(count)
print(“平均值是:”, count/len(ls))
作业5:合并两个有序数组,合并后还是有序列表
import random
n = []
m = []
for i in range(10):
n.append(random.randint(0,10))
m.append(random.randint(0,10))
print(n)
print(m)
for j in range(len(n)-1):
for k in range(len(n)-1-j):
if n[k]>n[k+1]:
n[k],n[k+1]=n[k+1],n[k]
print(f’n排序后的数组{n}’)
for j in range(len(m)-1):
for k in range(len(m)-1-j):
if m[k]>m[k+1]:
m[k],m[k+1]=m[k+1],m[k]
print(f’m排序后的数组为{m}’)
n.extend(m)
print(f’合并之后的数组为{n}’)
for j in range(len(n)-1):
for k in range(len(n)-1-j):
if n[k]>n[k+1]:
n[k],n[k+1]=n[k+1],n[k]
print(f’排序之后的数组为{n}’)
作业6:给定一个数组,已知数组中的元素都是成对出现,现在数组中只有一个元素没有成对,请找出这个元素。
a = [1,3,1,2,2,8,8]
b = []
c = []
for i in range(len(a)-1):
for j in range(len(a)-1-i):
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
flag = False
for k in range(len(a)-1):
if a[k] == a[k + 1]:
print(f'{a[k]}是成对的’)
flag=True
else:
b.append(a[k])
if flag:
c=b.pop(2)
print(f'{c}不是成对的’)