Create a program that checks for syntactical errors in an email address.

#Of course this question could be expanded into a program as large or small as desired, dependant on how rigorous wants the program to become. The setup I created here checks for some basic syntactical errors, such as there being too many or too few @ symbols, ensuring that there is at least one dot after the @ symbol, and that such a dot is not the final character in the address. #Ask user for email to check emailAddress = str(raw_input("Enter the email address that needs checking. >>>")) #Establish the boolean variable for a valid or invalid email and the error message if it is incorrect emailValid = True errorMessages = [] #Check for spaces and one @ symbol by cycling through the characters in the email address given. Records location of @ symbol for later noOfSpaces = 0 noOfAtSymbs = 0 for i in emailAddress:  if i == " ":    noOfSpaces += 1  elif i == "@":    noOfAtSymbs += 1    atIndex = emailAddress.index("@") if noOfSpaces != 0:  emailValid = False  errorMessages.append("Email addresses cannot contain spaces. ") if noOfAtSymbs != 1:  emailValid = False  errorMessages.append("Email addresses must contain a single '@' symbol. ") #Checks to see if there is at least one . after the @ try:  if "." not in emailAddress[atIndex:]:    emailValid = False    errorMessages.append("Email address must contain at least one '.' after the @ symbol") except NameError:  pass #Ensures that . is not final character if emailAddress[-1] == ".":  emailValid = False  errorMessages.append("Email address cannot end in '.'") #If no erroes found, return validation. If not, return why the address is invalid if emailValid == True:  print("This email address is valid.") elif emailValid == False:  print("Invalid email address:")  for i in errorMessages:    print i

Answered by Christopher H. Python tutor

1241 Views

See similar Python Mentoring tutors

Related Python Mentoring answers

All answers ▸

What built-in types does python provide?


How would you write a while loop to print all even numbers from 1-10?


Write a basic program to output the lowest of 3 input numbers. (You may omit error checks on your inputs)


What is the difference between a list and an array?


We're here to help

contact us iconContact usWhatsapp logoMessage us on Whatsapptelephone icon+44 (0) 203 773 6020
Facebook logoInstagram logoLinkedIn logo

© MyTutorWeb Ltd 2013–2024

Terms & Conditions|Privacy Policy