In: Computer Science
If you have downloaded the source code from this book's companion web site, you will find the following files in the Chapter 07 folder: • GirlNames.txt--This file contains a list of the 200 most popular names given to girls born in the United States from the year 2000 through 2009. • BoyNames.txt--This file contains a list of the 200 most popular names given to boys born in the United States from the year 2000 through 2009. Write a program that reads the contents of the two files into two separate lists, allows a user to input either a girl's name, a boy's name, or both, then tells the user whether the name(s) was/were popular between 2000 and 2009. First, the program should prompt the user to choose a girl's name, a boy's name, or both by entering either 'girl', 'boy', or 'both.' Once they have chosen, they should be able to input a name. If the name was a popular name, like Jacob or Sophia, the program should print "Jacob was a popular boy's name between 2000 and 2009." or "Sophia was a popular girl's name between 2000 and 2009." If the name was not a popular name, like Voldemort, the program should print "Voldemort was not a popular boy's name between 2000 and 2009." If the user chooses to input both a girl and boy's name, ask for the boy's name, then the girl's name, and print two statements in the form mentioned above on two separate lines, with the statement about the boy's name coming first. For example, if the user inputs Voldemort and then Sophia, print: Voldemort was not a popular boy's name between 2000 and 2009. Sophia was a popular girl's name between 2000 and 2009.
My code is working perfectly on boy and girl but it only reads that a name was not popular for boy and girl when running both.
def searchBoyName(boysList, name): #Searching for given boy name in list if name in boysList: #If found print("\n " + str(name) + " was a popular boy's name between 2000 and 2009. \n"); else: #If not found print("\n " + str(name) + " was not a popular boy's name between 2000 and 2009. \n"); def searchGirlName(girlsList, name): #Searching for given girl name in list if name in girlsList: #If found print("\n " + str(name) + " was a popular girl's name between 2000 and 2009. \n"); else: #If not found print("\n " + str(name) + " was not a popular girl's name between 2000 and 2009. \n"); def main(): #Reading data from files boysList = open("BoyNames.txt", "r"); girlsList = open("GirlNames.txt", "r"); #Initializing lists boyNames = []; girlNames = []; #Adding boys names for name in boysList: name = name.strip(); boyNames.append(name); #Adding girls names for name in girlsList: name = name.strip(); girlNames.append(name); #Accepting input from user type = input("\n Enter 'boy', 'girl', or 'both':"); #Searching for boy name if type == "boy": # Reading boy name bname = input("\n\n Input a boy name: "); # Searching searchBoyName(boyNames, bname) #Searching for girl name elif type == "girl": #Reading girl name gname = input("\n\n Input a girl name: "); #Searching searchGirlName(girlNames, gname); #Searching for both elif type == "both": #Searching for given boy name in list bname = input("\n\n Input a boy name: "); #Reading girl name gname = input("\n\n Input a girl name: "); if bname in boysList: #If found print("\n " + str(bname) + " was a popular boy's name between 2000 and 2009. \n"); elif bname not in boysList: #If not found print("\n " + str(bname) + " was not a popular boy's name between 2000 and 2009. \n"); #Searching for given girl name in list if gname in girlsList: #If found print("\n " + str(gname) + " was a popular girl's name between 2000 and 2009. \n"); elif gname not in girlsList: #If not found print("\n " + str(gname) + " was not a popular girl's name between 2000 and 2009. \n"); else: print("\n Invalid selection.... \n"); #Calling main function main();