python作业4

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值