базовое хранилище паролей python, ответ повторяется без остановки и другие проблемы

#python #python-3.x

#python #python-3.x

Вопрос:

Моя оценка заключается в создании хранилища паролей с базовыми списками python, функциями во время циклов и т.д., Но у меня возникают проблемы с той стороны, где пользователь фактически вводит пароли для своих приложений. Первая проблема заключается в том, что они просят показать свои пароли, а у них нет ни одного, который следовало бы указать "you have nothing stored" , он говорит это, но не перестает это повторять, а также поинтересовался, могу ли я получить некоторую помощь в завершении остальной части. вот как я хотел бы, чтобы эта часть кода выглядела с точки зрения ее использования.

Нажмите: 1) найдите существующие пароли 2) сохраните новый пароль для своих приложений 3) просмотрите сводку вашего хранилища паролей 4) успешно выйдите из хранилища паролей 2

Название веб-сайта: Facebook

Имя пользователя сайта: bob91

пароль сайта: bob95

вы хотели бы добавить другое приложение: да

Название веб-сайта: Instagram

Имя пользователя сайта: albert91

пароль сайта: albert95

вы хотели бы добавить другое приложение: нет

Нажмите: 1) найдите свои существующие пароли 2) сохраните новый пароль для своих приложений 3) просмотрите сводку вашего хранилища паролей 4) успешно выйдите из хранилища паролей 1 К какому приложению с паролем вы хотели бы получить доступ: Facebook Facebook

имя пользователя: bob91

пароль: bob95

————————————————— Мой фактический код прямо сейчас ->

 
vault_apps = []           
app_name = ""
def locker_menu_func():
    print('''You have opened the locker, 
Please select what you would like to do,''')
    while True:
        locker_menu_var = input('''Press: n1) find your existing passwords n2) save a new password for your apps
3) see a summary of your password locke n4) exit password locker successfully
---------------------------------------------------------------------------------
''')
        print('''----------------------------------------------------------------''')
        if locker_menu_var == "1":
            while len(vault_apps) < 1: 
                print('''you have nothing stored''') 
                break
            break
        elif locker_menu_var == "2":
            app_name = input('''
What is the name of the website/app your are adding?
''')
            app_password = input('''What is the password of your {} account?
'''.format(app_name))
            vault_apps.append([app_name, app_password])
            while True: another_app = input('''Would you like to add another app to your password locker?''')
            if another_app in {"Y", "YES"}:
                    print("okay")
                    break    

            break        

locker_menu_func()
  

Комментарии:

1. Некоторое время все повторяется, но вам нужно это только один раз, поэтому замените while len(app_passwords) < 1 на if len(app_passwords) < 1 . Затем вы можете включить break в if-блок.

2. В вашем while Len(app_passwords) <1: у вас нет возможности обновить свой app_passwords , поэтому вы создали бесконечный цикл. Сделайте отступ break ниже, чтобы устранить эту проблему.

3. @BenT, теперь эта часть работает, спасибо, не могли бы вы помочь с остальным, я вроде как застрял

4. Вам следует попробовать это самостоятельно, и тогда вы сможете спросить, есть ли у вас конкретная проблема.

5. @Michael Butscher я пытался в течение 2 дней, на самом деле я не знаю, с чего начать и как это сделать, например, как добавить веб-сайт, имя пользователя и пароль в список, а затем показать пользователю, когда они спросят

Ответ №1:

Я использовал словарь для хранения пароля. Попробуйте это таким образом. Если это решило вашу проблему, пожалуйста, поддержите и сделайте это в качестве ответа.

 app_passwords = {}

def locker_menu_func():
    print('''You have opened the locker, 
Please select what you would like to do,''')

    while True:
        locker_menu_var = input('''Press: n1) find your existing passwords n2) save a new password for your apps
3) see a summary of your password locke n4) exit password locker successfully''')
        if locker_menu_var == "1":
            while len(app_passwords) < 1: 
                print('''you hve nothing stored''')           
                break
            else:
                for kv in app_passwords.items():
                    a=  kv[0],kv[1]
                    print(str(a).replace("(","").replace(")","").replace("[","").replace("]",""))
                #print (app_passwords)

        elif locker_menu_var == "2":
            web = input("Enter Website")
            username = input("Enter username")
            password = input("Enter password")
            app_passwords[web]=["username:" username "," "password:" password]
        elif locker_menu_var == "3":
            print ("Count of Websites stored",len(app_passwords))
        elif locker_menu_var == "4":
            break


locker_menu_func()
  

Комментарии:

1. привет, спасибо за вашу помощь, когда вы печатаете учетную запись, она печатается вот так, {‘facebook’: [‘имя пользователя: bob41, пароль: bob42’]} есть ли какой-нибудь способ улучшить ее представление, например, без всех скобок?

2. Отредактировано на основе вашего комментария

3. Я действительно ценю вашу помощь,, я действительно еще не выучил словарный код, как вы думаете, вы могли бы использовать списки вместо этого, потому что даже мой учитель будет удивляться, как я это сделал, также после того, как пользователь создал одну учетную запись, можете ли вы сделать так, чтобы он спрашивал, нужен ли ему другой код, я отредактировал свой фактический код, который я сейчас обновлю, если вы не возражаете помочь мне, возможно, исправить это?

4. Я просто решаю вашу проблему, а не выполняю всю вашу задачу. Если вы хотите выполнить свою задачу, обратитесь к Stackoverflow или к своему преподавателю и найдите решения. С помощью Google вы можете сделать это легко. Попробуйте сами

5. очевидно, что я могу сделать это сам, меня бы здесь не было, если бы я не пробовал себя, но иногда попытки самостоятельно не означают, что вы можете завершить это, я уже погуглил, был здесь последние 2 дня и не могу найти ничего, что действительно заставило бы мой код работать, я не могу спросить учителя, или самая высокая оценка, которую я могу получить, — это achived или в американской системе a «d»