萬科筆試題解法--python

例如{"username":"admin","passwd":"123456"}
1.設計1個登陸的程序, 不同的用戶名和對成密碼存在個字典裏面, 輸入正確的用戶名和密碼去登陸,
2.首先輸入用戶名,如果用戶名不存在或者爲空,則一直提示輸入正 確的用戶名
3.當用戶名正確的時候,提示去輸入密碼,如果密碼跟用戶名不對應, 則提示密碼錯誤請重新輸入。
4.如果密碼輸入錯誤超過三次,中斷程序運行。
5.當輸入密碼錯誤時,提示還有幾次機會
6用戶名和密碼都輸入正確的時候,提示登陸成功!

檸檬班解法一:
def user_login():
    login_info={"username":"admin","passwd":"123456"}
    name=input("請輸入你的登錄名:")
    while name!=login_info['username']:
        name=input("你剛剛輸入的用戶名不存在,請重新輸入:")

    password=input("請輸入你的密碼:")
    pwd_num=3#初始值
    while password!=login_info['passwd']:#123456
        pwd_num-=1#每輸出一次就減去1
        if pwd_num>0:
            print("你還有%s次密碼輸入的機會"%pwd_num)#格式化輸出
            password=input("你剛剛輸入的密碼錯誤,請重新輸入:")
            continue
        elif pwd_num==0:
            print("你輸入密碼錯誤過多,用戶已經被凍結")
            break
    if name==login_info['username'] and password==login_info['passwd']:
        print("登錄成功!")
        
user_login()

檸檬班解法二:
def user_login():
    info={"username":"admin","passwd":"123456"}
    name=input("請輸入登錄用戶名:")
    while name!=info['username'] or name=='':
        name=input("輸入錯誤,請輸入登錄用戶名:")

    num=3
    while num>0:
        pwd=input("請輸入登錄密碼:")
        if pwd==info['passwd']:
            print("登錄成功!")
            num=0#此處重置num的值
        elif pwd=='' or pwd!=info['passwd']:
            num-=1
            if num==0:
                print("輸入錯誤的密碼次數超過3次,賬戶已被凍結")
            else:
                print("密碼不正確!你還有%s次密碼輸入機會"%num)

user_login()
我的解法:
user_1 = {'username': 'admin', 'password': 'admin123'}
user_2 = {'username': 'erduo', 'password': 'erduo123'}
user_3 = {'username': 'guest', 'password': 'guest123'}
users = [user_1, user_2, user_3]

active_2 = True
while active_2:
    username = input('請輸用戶名:')
    for i in range(len(users)):
        u = users[i]['username']
        p = users[i]['password']
        if username == u:
            active_1 = True
            num = 3
            while active_1:
                password = input('請輸入密碼:')
                if password == p:
                    print('登錄成功 ')
                    active_1 = False
                else:
                    num = num - 1
                    print('密碼錯誤,還有' + str(num) + '次機會')
                    if num == 0:
                        active_1 = False
            active_2 = False
            break
        else:
            print('請輸入正確用戶名')
            break

HC寫的--->加上我的,,放出來,,接受批評批評!!不接受點贊哼!

user_1 = {'username':'admin','password':'123456'}
user_2 = {'username':'erduo','password':'123456'}
user_3 = {'username':'guest','password':'123456'}
users = [user_1,user_2,user_3]

while True:
    username = input("輸入賬號:")
    for user in users:
        if username == user['username']:
            num = 3
            while True:
                password = input('請輸入密碼:')
                if password == user['password']:
                    print('登錄成功')
                    break
                else:
                    num = num - 1
                    print('密碼錯誤,還有'+str(num)+'次機會')
                    if num == 0:
                        break
            break

    else:
        print('賬號不存在')
        continue
    break

羊羽衣的解法:
if __name__ == '__main__':
    # session 裏面的 dict 可以自己添加,作爲已有的用戶信息
    session = [{"username": "admin", "password": "123456"},
           {"username": "jack", "password": "123"},
           {"username": "tom", "password": "456"},
           {"username": "amy", "password": "135"},
           ]
while True:
    while True:
        username = str(input('請輸入用戶名: '))
        for user_information in session:
            if username == user_information['username']:
                password = user_information['password']
                break
        else:
            continue
        count = 3
        for i in range(count):
            input_password = str(input('請輸入密碼: '))
            if input_password == password:
                break
            else:
                if count - i - 1 != 0:
                    print('密碼錯誤,請重新輸入密碼 --> 還有{}次機會'.format(count - i - 1))
        else:
            break
        print('登錄成功')
        break
    break

ps:之所以放這麼多代碼就是要看暈你~!




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章