1

We're coding a password saver and I'm stuck on Nested List loops.

passwords = [["yahoo","XqffoZeo"],["google","CoIushujSetu"]]

if(choice == '2'): #Lookup at password
    print("Which website do you want to lookup the password for?")
    for keyvalue in passwords:
        print(keyvalue[0])
    passwordToLookup = input()

This is what I have so far. I now need to create a loop that gives the password and will work if passwords list is appended with more websites and their passwords.

Here's the whole of the code: I'm working through it a little at a time since it's an assignment and not a personal project.

import csv
import sys

#The password list - We start with it populated for testing purposes
passwords = [["yahoo","XqffoZeo"],["google","CoIushujSetu"]]


#The password file name to store the passwords to
passwordFileName = "samplePasswordFile"

#The encryption key for the caesar cypher
encryptionKey=16

#Caesar Cypher Encryption
def passwordEncrypt (unencryptedMessage, key):

#We will start with an empty string as our encryptedMessage
encryptedMessage = ''

#For each symbol in the unencryptedMessage we will add an encrypted symbol      into the enc sage
for symbol in unencryptedMessage:
    if symbol.isalpha():
        num = ord(symbol)
        num += key

        if symbol.isupper():
            if num > ord('Z'):
                num -= 26
            elif num < ord('A'):
                num += 26
        elif symbol.islower():
            if num > ord('z'):
                num -= 26
            elif num < ord('a'):
                num += 26

        encryptedMessage += chr(num)
    else:
        encryptedMessage += symbol

return encryptedMessage

def loadPasswordFile(fileName):

with open(fileName, newline='') as csvfile:
    passwordreader = csv.reader(csvfile)
    passwordList = list(passwordreader)

return passwordList

def savePasswordFile(passwordList, fileName):

with open(fileName, 'w+', newline='') as csvfile:
    passwordwriter = csv.writer(csvfile)
    passwordwriter.writerows(passwordList)



while True:
print("What would you like to do:")
print(" 1. Open password file")
print(" 2. Lookup a password")
print(" 3. Add a password")
print(" 4. Save password file")
print(" 5. Print the encrypted password list (for testing)")
print(" 6. Quit program")
print("Please enter a number (1-4)")
choice = input()

if(choice == '1'): #Load the password list from a file
    passwords = loadPasswordFile(passwordFileName)

if(choice == '2'): #Lookup at password
    print("Which website do you want to lookup the password for?")
    for keyvalue in passwords:
        print(keyvalue[0])
    passwordToLookup = input()

    ####### THIS IS WHERE I'm WORKING ####
#NOt supposed to change any of the base code just working on this part currently.

    for list in passwords:


    #Perameters: You will need to find the password that matches the website
    #You will then need to decrypt the password

    #1. Create a loop that goes through each item in the password list

    #2. Check if the name is found.  To index a list of lists you use 2 square bracket sets

    #3. If the name is found then decrypt it.  





print()
print()
Inky
  • 11
  • 2

1 Answers1

0

You can unpack the inner lists into two different variables instead of one, like this:

passwords = [["yahoo","XqffoZeo"],["google","CoIushujSetu"]]

if(choice == '2'): #Lookup at password
    print("Which website do you want to lookup the password for?")
    for key, _ in passwords:
        print(key)
    passwordToLookup = input().strip()
    for key, value in passwords:
        if key == passwordToLookup:
            print(value)
Nick Frost
  • 490
  • 2
  • 12