On 8/1/2015 10:54 AM, Quiles, Stephanie wrote:
Hello All,
I have a python assignment. I have to make sure that when user inputs email
that the program verifies that the address as a @ and a “.” in the entry or
else return an invalid email error.
A Very rudimentary form of email validation. i cannot get the program to work.
Here is what i have so far:
import pickle
def main():
cont = True
emails = open_existing_file()
print(emails)
# Get data...
while cont:
name = input("Enter your name :")
email1 = input("Enter your email address :")
email2 = input("Enter alternate email address :")
phone = input("Enter your phone number :")
contactlist = [email1,email2,phone]
emails[name] = contactlist
c = input("Enter another? [y]/n :")
if c == 'n' or c == 'N':
cont = False
def email1():
if '@' not in email and '.' not in email:
print('email needs @ and . at the same time')
# Save data...
outfile = open("emails.dat","wb")
pickle.dump(emails,outfile)
outfile.close
print("Your data has been saved to emails.dat")
def open_existing_file():
# returns an empty dictionary or one that has data from a file
emails = {}
# Load the dictionary
try:
infile = open("emails.dat","rb")
emails = pickle.load(infile)
infile.close()
except:
print("No file to open. Starting with no data.")
return emails
main()
Here is the error message :
/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4
/Users/stephaniequiles/Downloads/emailsupdate.py
Traceback (most recent call last):
File "/Users/stephaniequiles/Downloads/emailsupdate.py", line 42, in <module>
main()
File "/Users/stephaniequiles/Downloads/emailsupdate.py", line 6, in main
emails = open_existing_file()
UnboundLocalError: local variable 'open_existing_file' referenced before
assignment
Process finished with exit code 1
not sure why it is not recognizing that the open_existing_file() function needs
to be returned to the “emails” variable? I am guessing it has to do with my
syntax? any suggestions, please?
Python executes as it processes the file, so that open_existing_file
must have been previously defined before you can refer to it. Try
moving that def block in front of main and you'll likely be OK (assuming
no other issues)
Emile
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor