python作业4

  • Post author:
  • Post category:python


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}不是成对的’)



版权声明:本文为middlecorn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。