python3练习

1.

# 学生管理系统, 分为管理员登陆和学生登陆;
# 管理员登陆, 可以操作:
    # 管理员密码修改;
    # 添加学生的信息;
    # 删除学生的信息;
    # 修改学生的信息;
    # 查询学生的信息(根据学号);
    # 查看所有学生的信息;
    # 退出系统;
# 学生登录:
    # 查询个人信息;
    # 修改信息;
        # 修改年龄;
        # 修改密码;
# 学生信息包括:
    # 学号, 姓名, 性别, 班级, 出生年月, 用户名, 密码
    # 学生用户名和学号保持一致;
# 管理员信息包括:
#     用户名, 密码
AdminDict = {'admin':'root'}
StudentDict={'学号':[],
             '姓名':[],
             '性别':[],
             '班级':[],
             '出生年月':[],
             '用户名':[],
             '密码':[]
             }
def main():
    while True:
        print('欢迎使用用户管理系统,请选择您要登陆的用户:'.center(40,'*'))
        print("""
                        1.管理员
                        2.学生
                        q.退出登陆
        """)
        choice=input('输入选项:')
        if choice=='1':
            inadmin=input('输入管理员用户名:')
            inpasswd=input('输入密码:')
            if inadmin in AdminDict:
                if inpasswd==AdminDict[inadmin]:
                    AdminFun()
                else:
                    print('密码错误')
            else:
                print('管理员用户名错误')
        elif choice=='2':
            instuname=input('输入学生用户名:')
            instupasswd=input('输入密码:')
            if instuname in StudentDict['用户名']:
                item=StudentDict['用户名'].index(instuname)
                if instupasswd==StudentDict['密码'][item]:
                    StudentFun(item)
                else:
                    print('密码错误')
            else:
                print('学生用户名错误')
        elif choice=='q':
            print('退出成功')
            break
        else:
            print('输入错误,请重试')
def AdminFun():
    while True:
        admininfo="""
            1.管理员密码修改
            2.添加学生信息
            3.删除学生信息
            4.修改学生信息
            5.查询学生信息(根据学号)
            6.查看所有学生的信息
            7.退出系统
        """
        print('管理员系统'.center(40,'*'))
        print(admininfo)
        choice=input('输入选项:')
        if choice=='1':
            inpasswd=ip=input('输入新密码:')
            AdminDict['root']=inpasswd
            print('密码修改成功')
        elif choice=='2':
            num=input('输入学号:')
            name=input('输入姓名:')
            sex=input('输入性别:')
            classes=input('输入班级:')
            birth=input('输入出生年月:')
            passwdstudent=input('输入密码:')
            StudentDict['学号'].append(num)
            StudentDict['姓名'].append(name)
            StudentDict['性别'].append(sex)
            StudentDict['班级'].append(classes)
            StudentDict['出生年月'].append(birth)
            StudentDict['用户名'].append(num)
            StudentDict['密码'].append(passwdstudent)
            print('学生信息添加成功')
        elif choice=='3':
            num=input('输入要删除的学号:')
            if num in StudentDict['学号']:
                item=StudentDict['学号'].index(num)
                for i in StudentDict:
                    StudentDict[i].pop(item)
                print('学生信息删除成功')
            else:
                print('学号不存在,不能删除')
        elif choice=='4':
            num=input('输入要修改的学号:')
            if num in StudentDict['学号']:
                option=input('输入要修改的选项:')
                contain=input('输入修改的内容:')
                stem=StudentDict['学号'].index(num)
                StudentDict[option][stem]=contain
                print('学生信息修改成功')
            else:
                print('学号不存在,不能修改')
        elif choice=='5':
            num=input('输入要查询的学号:')
            if num in StudentDict['学号']:
                stem=StudentDict['学号'].index(num)
                for i,v in StudentDict.items():
                    print(i,':',v[stem])
        elif choice=='6':
            for i,v in StudentDict.items():
                print(i,':',v)
        elif choice=='7':
            print('退出成功')
            break
        else:
            print('选项输入错误,请重试')
def StudentFun(item):
    while True:
        info="""
            1.查询个人信息
            2.修改信息
                1)修改出生年月
                2)修改密码
            3.退出系统
        """
        print( '学生系统'.center(40,'*'))
        print(info)
        choice=input('输入选项:')
        if choice=='1':
            for key in StudentDict:
                print('%s:%s' %(key,StudentDict[key][item]))
        elif choice=='2':
            option=input('输入修改选项:')
            if option=='1':
                age=input('输入要修改的出生年月:')
                StudentDict['出生年月'][item]=age
                print('出生年月修改成功')
            elif option=='2':
                passwd=input('输入要修改的密码:')
                StudentDict['密码'][item]=passwd
        elif choice=='3':
            print('退出成功')
            break
        else:
            print('输入错误,请重试')
main()
*********欢迎使用用户管理系统,请选择您要登陆的用户:*********

                        1.管理员
                        2.学生
                        q.退出登陆
        
输入选项:1
输入管理员用户名:admin
输入密码:root
*****************管理员系统******************

                1.管理员密码修改
                2.添加学生信息
                3.删除学生信息
                4.修改学生信息
                5.查询学生信息(根据学号)
                6.查看所有学生的信息
                7.退出系统
        
输入选项:5
输入要查询的学号:1
学号 : 1
姓名 : 小明
性别 : 男
班级 : 1
出生年月 : 1998.1.1
用户名 : 1
密码 : xiaoming
*****************管理员系统******************

                1.管理员密码修改
                2.添加学生信息
                3.删除学生信息
                4.修改学生信息
                5.查询学生信息(根据学号)
                6.查看所有学生的信息
                7.退出系统
        
输入选项:7
退出成功

2.罗马数字包含以下七种字符: I, V, X, L,C,D 和 M
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

例如,罗马数字2写做 II,即为两个并排放置的的 1,12写做XII,即为 X + II ,27写做XXVII,即为XX+V+II

在罗马数字中,小的数字在大的数字的右边。但 4 不写作 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数减小数得到的数值 4 。同样地,数字 9 表示为 IX。这个规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900

给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 范围内

示例:

示例 1:
输入: “III”
输出: 3

示例 2:
输入: “IV”
输出: 4

示例 3:
输入: “IX”
输出: 9

示例 4:
输入: “LVIII”
输出: 58
解释: C = 100, L = 50, XXX = 30 and III = 3.

示例 5:
输入: “MCMXCIV”
输出: 1994
解释: M = 1000, CM = 900, XC = 90 and IV = 4.

d = dict(I = 1,V = 5,X = 10,L = 50,C = 100,D = 500,M = 1000)
num = input('请输入一个罗马数字:')[::-1]
res = d[num[0]]
for k,v in enumerate(num):
    if k<len(num)-1:
        if d[num[k+1]]>=d[v]:
            res=res+d[num[k+1]]
        else:
            res=res-d[num[k+1]]
print(res)
请输入一个罗马数字:MCMXCIV
1994

3.编写一个函数来查找字符串数组中的最长公共前缀
如果不存在最长公共前缀,返回空字符串 ''

示例 1:
输入: [“flower”,”flow”,”flight”]
输出: “fl”

示例 2:
输入: [“dog”,”racecar”,”car”]
输出: “”
解释: 输入不存在最长公共前缀

说明:所有输入只包含小写字母 a-z

def solution(strs):
    if not strs:# 如果strs为空,返回空字符串
        return ''
    s1 = min(strs)#根据ASCII码来排序的
    s2 = max(strs)
    for i,v in enumerate(s1):
        if v != s2[i]:
            return s1[:i]
    return s1
li = list(map(str,input('请输入字符串数组:').split()))
print(solution(li))
请输入字符串数组:flower flow flight
fl
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值