I'm teaching myself programming, using Python as my initial weapon of choice.
I have learnt a few basics and decided to set myself the challenge of asking the user for a list of names, adding the names to a list and then finally writing the names to a .csv file.
What would you do differently, i.e. how could this code be improved for readability and efficiency? Would you approach the situation differently, structure it differently, call different functions? I am interested in, and would appreciate a great deal, the feedback from more experienced programmers.
In particular, I find certain parts clunky; such as having to specify to the user the required format for data entry. If I were to simply request the data (name age location) without the commas however, then each record, when written to
.csv, would simply end up as one record per cell (Excel) – this is not the desired result.
guestNames = "" guestList =  number = 0 guestNumber = ["second","third","fourth","fifth","sixth"] finalList = "" #Requesting user input. guestNames = input("Please enter the names of your guests, one at a time.\n"\ "Once you have finished entering the information, please type the word \"Done\".\n"\ "Please enter your names in the following format (Name, Age, Location). ").capitalize() guestList.append(guestNames) while guestNames.lower() != "done".lower() : guestNames = input("Please enter the name of your " + guestNumber[number] + " guest: ").capitalize() guestList.append(guestNames) number += 1 #Sorting the list. guestList.sort() guestList.remove("Done") #Creating .csv file. guestFile = open("guestList.csv","w") guestFile.close() #Writing to file. for entries in guestList : guestFile = open("guestList.csv","a") guestFile.write(entries) guestFile.write("\n") guestFile.close()