In: Computer Science
This assignment involves the use of text files, lists, and exception handling and is a continuation of the baby file assignment. You should now have two files … one called boynames2014.txt and one called girlnames2014.txt - each containing the top 100 names for each gender from 2014. Write a program which allows the user to search your files for a boy or girl name and display where that name ranked in 2014. For example …
>>> Enter gender (boy/girl): boy
Enter the name to search for: Michael
Michael was ranked # 7 in 2014 for boy names.
>>> ================================ RESTART ================================
Enter gender (boy/girl): boy
Enter the name to search for: MIchAel
MIchAel was ranked # 7 in 2014 for boy names.
>>> ================================ RESTART ================================
Enter gender (boy/girl): boy
Enter the name to search for: Jeremiah
Jeremiah was ranked # 56 in 2014 for boy names.
>>> ================================ RESTART ================================
Enter gender (boy/girl): girl
Enter the name to search for: olivia
olivia was ranked # 2 in 2014 for girl names.
>>> ================================ RESTART ================================
Enter gender (boy/girl): girl
Enter the name to search for: billie jean
billie jean was not ranked in the top 100 girl names for 2014.
>>> ================================ RESTART ================================
Enter gender (boy/girl): gril
Enter the name to search for: sue
Invalid gender >>>
Make sure to use try/except blocks to handle the exception if the files are not found or unavailable. Use the index method on the list to find the baby name. Use a try/except block to handle the exception caused when the name is not found in the file. Also, check for an invalid gender entry.
# Using the newer with construct to close the file
automatically.
# Opening the files and splitting by newline and storing into
list
with open(boyfilename) as b:
boylist = b.read().splitlines()
with open(girlfilename) as g:
girllist = g.read().splitlines()
return boylist,girllist
except:
print('Files not found!!!')
return
def main():
# Calling loadnames method will load names into two lists
boynamelist,girlnamelist=loadnames("boynames2016.txt","girlnames2016.txt")
# taking input from users and searching in list using index
method of list
while True:
gender = raw_input("Enter Gender (boy/girl): ")
name=raw_input("Enter the name to search for: ")
try:
if gender=="boy":
rank=boynamelist.index(name)+1
print name, " was ranked #", rank," in 2016 for boy names."
elif gender=="girl":
rank = girlnamelist.index(name) + 1
print name, " was ranked #" ,rank, "in 2016 for girl names."
except:
print name+" was not ranked in the top 100 "+ gender+" names for
2016"
# Exit program when 0 pressed
status=raw_input("Press 0 to Exit/Any other key to continue")
if status=="0":
break;
main()