Hello! I am currently working on a program to take an email address, password an
ID: 3723304 • Letter: H
Question
Hello! I am currently working on a program to take an email address, password and user name from a user and display them. I am stuck on getting my getUsername() function to do anything. I get a blank list. My program is not finished yet, i have to add a third condition that would exit the menu so bear that in mind please! I added the print(token_emailAddress) and it prints a blank list. what am i doing wrong?
def main():
# Declare variables
choice = ''
repeat = 'y'
emailAddress = ''
username = ''
password = ''
#initiates three blank lists
emailAddressList = []
passwordList = []
usernameList = []
# Display program header
print('Login Verification Program')
print('--------------------------')
while repeat == 'y':
# Display program menu
print(' 1. Enter new login credentials')
print('2. Display login credentials')
print('3. Exit program')
choice = input('Enter selection: ')
if choice == '1':
emailAddressList.append(getEmailAddress())
passwordList.append(getPassword())
username = getUsername(emailAddress)
usernameList.append(username)
print('Credentials Accepted!')
if choice == '2':
displayCredentialsReport(emailAddressList,passwordList,usernameList)
# define the getEmailAddress function
def getEmailAddress():
# asks the user to input their email address
isValid = False
emailAddress = input('Enter your email address:')
while isValid != True:
# tests to see if there are two characters in the email address
if '.' not in emailAddress:
print('Your email address is invalid!')
emailAddress = input('Please re-enter:')
isValid = False
elif '@' not in emailAddress:
print('Your email address is invalid!')
emailAddress = input('Please re-enter:')
isValid = False
else:
isValid = True
#function returns email address
return emailAddress
# define the get password function
def getPassword():
# define local variables
i = 0
sp = 0
u = 0
l = 0
isValid = False
#print the initial message
print('NOTE: Passwords must be at least 8 characters in length and contain at least one uppercase letter and one number.')
password = input('Enter your password:')
# begins the while loop for the function
while isValid != True:
# tests to see if the password has less than 8 characters
if len(password) < 8:
print('Your password is invalid!')
password = input('Please re-enter:')
isValid = False
break
# when condition passes, we move on to testing the contents of the password
else:
for c in password:
# tests for te digit
if c.isdigit():
i = 1
# tests for special characters
elif c=="$" or c=="#" or c=="@":
sp = 1
elif c == c.upper():
# tests for an upper case`
u = 1
# tests for a lower case
elif c == c.lower():
l = 1
else:
# exits if statement if all conditions are met
continue
# if all of the branches of the if statement are met, the following appends the
# valid password to the list of passwords
if i == 1 and l == 1 and sp == 1 and u == 1:
isValid = True
break
else:
print('Your password is invalid!')
password = input('Please re-enter:')
continue
# returns the password and the password list
return password
def getUsername(emailAddress):
token_emailAddress = emailAddress.split('@')
username = token_emailAddress[0]
print(token_emailAddress)
return username
def displayCredentialsReport(emailAddressList,passwordList,usernameList):
# Display report header
c=0
print('Login Credential Report')
print('----------------------- ')
print('Email Address ' + ' ' + 'Password ' + ' ' + 'Username')
print('------------- ' + ' ' + '-------- ' + ' ' + '--------')
while c < range(len(usernameList)):
print(emailAddressList[c] + ' ' +passwordList[c] + ' ' + usernameList[c])
c+=1
if __name__ == '__main__':
main()
Explanation / Answer
def main(): # Declare variables choice = '' repeat = 'y' emailAddress = '' username = '' password = '' # initiates three blank lists emailAddressList = [] passwordList = [] usernameList = [] # Display program header print('Login Verification Program') print('--------------------------') while repeat == 'y': # Display program menu print(' 1. Enter new login credentials') print('2. Display login credentials') print('3. Exit program') choice = input('Enter selection: ') if choice == '1': emailAddressList.append(getEmailAddress()) passwordList.append(getPassword()) username = getUsername(emailAddressList[-1]) usernameList.append(username) print('Credentials Accepted!') if choice == '2': displayCredentialsReport(emailAddressList, passwordList, usernameList) if choice=='3': repeat='n' else: print('Enter valid choice') # define the getEmailAddress function def getEmailAddress(): # asks the user to input their email address isValid = False emailAddress = input('Enter your email address:') while isValid != True: # tests to see if there are two characters in the email address if '.' not in emailAddress: print('Your email address is invalid!') emailAddress = input('Please re-enter:') isValid = False elif '@' not in emailAddress: print('Your email address is invalid!') emailAddress = input('Please re-enter:') isValid = False else: isValid = True # function returns email address return emailAddress # define the get password function def getPassword(): # define local variables i = 0 sp = 0 u = 0 l = 0 isValid = False # print the initial message print( 'NOTE: Passwords must be at least 8 characters in length and contain at least one uppercase letter and one number.') password = input('Enter your password:') # begins the while loop for the function while isValid != True: # tests to see if the password has less than 8 characters if len(password) < 8: print('Your password is invalid!') password = input('Please re-enter:') isValid = False # when condition passes, we move on to testing the contents of the password else: for c in password: # tests for te digit if c.isdigit(): i = 1 # tests for special characters elif c == "$" or c == "#" or c == "@": sp = 1 elif c == c.upper(): # tests for an upper case` u = 1 # tests for a lower case elif c == c.lower(): l = 1 else: # exits if statement if all conditions are met continue # if all of the branches of the if statement are met, the following appends the # valid password to the list of passwords if i == 1 and l == 1 and sp == 1 and u == 1: isValid = True break else: print('Your password is invalid!') password = input('Please re-enter:') # returns the password and the password list return password def getUsername(emailAddress): token_emailAddress = emailAddress.split('@') username = token_emailAddress[0] #print(token_emailAddress) return username def displayCredentialsReport(emailAddressList, passwordList, usernameList): # Display report header c = 0 print('Login Credential Report') print('--------------------------------------------------------------------- ') print('{:>20} {:>15} {:>15}'.format('Email Address', 'Password','Username')) print('{:->20} {:->15} {:->15}'.format('-','-','-')) while c < (len(usernameList)): print('{:>20} {:>15} {:>15}'.format(emailAddressList[c],passwordList[c],usernameList[c]))#emailAddressList[c] + ' ' + passwordList[c] + ' ' + usernameList[c]) c += 1 if __name__ == '__main__': main()Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.