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

CH
Answered by Christopher H. Python tutor

1664 Views

See similar Python Mentoring tutors

Related Python Mentoring answers

All answers ▸

Generate an array of integers from 0 to 99 and split it into two smaller arrays. Each smaller array will contain half of the original.


Which four data types are used in Python? Can you give an example of each?


Why would I use dictionaries instead of a list?


Given a list of N numbers, use a single list comprehension to produce a new list that only contains those values that are: (a) even numbers, and (b) from elements in the original list that had even indices .


We're here to help

contact us iconContact ustelephone icon+44 (0) 203 773 6020
Facebook logoInstagram logoLinkedIn logo

© MyTutorWeb Ltd 2013–2025

Terms & Conditions|Privacy Policy
Cookie Preferences