help00621
help00621

Reputation: 5

How do I store the values into this dict so that in the next iteration it would work?

I'm not sure how to store the values taken from the user input (to generate new username and password) and store it in the iass dict, so in the next iteration it would work:

iass = {}

class login:
   def __init__(self):
     pass

   def passcheck(self):
     for key, value in iass.copy().items():
        if self.username == key and self.password == value:
            print("Granted Access")
        else:
            A = str(input("Enter Desired Name: "))
            B = str(input("Enter Desired Password: "))
            iass[A] = B


A1 = login()
A1.username = str(input("Enter Username: "))
A1.password = str(input("Password: "))
A1.passcheck()

Upvotes: 0

Views: 45

Answers (2)

natersoz
natersoz

Reputation: 1752

Please run pylint on your code.

  • It will uncover bugs for you before you run it.
  • It will improve the code readability. This helps everyone: yourself and others who will read your code.

Code changes:

  • Remove the iass.copy() call. It was unnecessary; though not creating a bug.
  • To make the code "work" you need to initialize iass with a key and value:
iass = {"ding": "dong"}
  • Remove the else: block. That is causing an extra prompt which is only confusing and would be considered a bug.

Now when the user enters a username, password "ding" and "dong" your check will "pass".

Upvotes: 0

Phalox
Phalox

Reputation: 38

Your usage of a class/object is a little strange. Usually one would create a class for something that represents an object (a noun) in the real world. In your application, this might be User.

Login would be a method in that class.

Your method passcheck is also a bit strangely constructed. As you've just asked for the input of Username and Password, you can reuse these at all times. You don't need to ask them again. I'd recommend you to pass username and password as parameters in the login method, rather than setting them directly as parameters. Your code could look somewhat like this

iass = []

iass.append({'myuser': 'mypwd'})

class User:
   def __init__(self):
     pass

   def login(self, username, password):
     for key, value in iass.items():
        if username == key and password == value:
            print("Granted Access")
            return

     # User not found, so we're adding him
     iass.append({username: password})


A1 = User()
username = str(input("Enter Username: "))
password = str(input("Password: "))
A1.login(username, password)

Note: didn't run this in the python parser. might have some issues :-)

Upvotes: 2

Related Questions