函数式编程(小练习)

#文件

alex,56666,22,Engineer,IT
rain,456,25,Teacher,Teching


#实现以下功能
# 1. 修改个人信息
# 2. 打印个人信息
# 3. 修改密码

choice ='''
1. 修改个人信息
2. 打印个人信息
3. 修改密码
 '''
def look(accounts,user):
    print('''
    name:%s
    age:  %s
    position:%s
    post:%s'''%(accounts[user][0],accounts[user][2],accounts[user][3],accounts[user][4]))
    output(accounts,user)

def save(accounts_dic):
    f.seek(0)
    f.truncate()
    for k in accounts_dic:
        row = ','.join(accounts_dic[k])
        f.write('%s
'%row)
    f.flush()

def modify(accounts,user):
    print('''
    %s name:%s
    %s age:  %s
    %s position:%s
    %s post:%s'''%(0,accounts[user][0],2,accounts[user][2],3,accounts[user][3],4,accounts[user][4]))
    number = int(input("请输入修改的序号"))
    change = input((accounts[user][number])+'修改的值')
    accounts[user][number] = change
    print(accounts[user])
    save(accounts)
    output(accounts,user)


def passwd(accounts,user):
    print('当前密码为%s'%(accounts[user][1]))
    user_pas = input('请输入新的密码')
    accounts[user][1] = user_pas
    print('新密码为%s'%user_pas)
    save(accounts)
    output(accounts,user)

def output(accounts,user):
    print(choice)
    num = input('请输入数字选项')
    if num == '1':
        modify(accounts,user)
    elif num == '2':
        look(accounts,user)
    elif num == '3':
        passwd(accounts,user)




f_name_new = 'info_new'
f_new = open(f_name_new,'w+',encoding='utf-8')
f_name = 'info'
f = open(f_name,'r+',encoding='utf-8')
data = f.readlines()
accounts = {}
for line in data:
    line = line.strip()
    itmes = line.split(',')
    accounts[itmes[0]] =itmes
count =0
while count <3 :
    user = input('User Name>')
    if user in accounts.keys():
        password = input('Password')
        if password == accounts[user][1]:
            print('登陆成功')
            output(accounts,user)
            # print(choice)
            # num = input('请输入数字选项')
            # if num  == '2' :
            #     look(accounts,user)
        else:
            count+=1
            continue
    else:
        count+=1
        continue

f.close()
原文地址:https://www.cnblogs.com/mjiu/p/8644635.html