What is wrong in my code to give me the error:TypeError: List of indices must be integers, not str
Here is my code:
print("This programe will keep track of your TV schedule.")
Finish = False
Show = []
ShowStart = []
ShowEnd = []
while not Finish:
print()
ShowName = input("What is the shows name?: ")
if ShowName == "":Finish = True
else:ShowStartTime = input("What time does the show start?: ")ShowEndTime = input("What time does the show end?: ")Show.append(ShowName)ShowStart.append(ShowStartTime)ShowEnd.append(ShowEndTime)
print("{0:<10} | {1:<10} | {2:<10} ".format("Show Name", "Start Time", "End Time"))
for each in Show:
print("{0:<10} | {1:<10} | {2:<10} ".format(Show[each], ShowStart[each], ShowEnd[each]))
input()
Your last loop is wrong. Try this:
for each in range(len(Show)):print("{0:<10} | {1:<10} | {2:<10} ".format(Show[each], ShowStart[each], ShowEnd[each]))
(Your 3 lists should be merged in one list of dictionary by the way:
print("This programe will keep track of your TV schedule.")
Finish = False
shows = []
while not Finish:ShowName = input("What is the shows name?: ")if ShowName == "":Finish = Trueelse:ShowStartTime = input("What time does the show start?: ")ShowEndTime = input("What time does the show end?: ")shows.append({'name': ShowName, 'start': ShowStartTime, 'end': ShowEndTime})print("{0:<10} | {1:<10} | {2:<10} ".format("Show Name", "Start Time", "End Time"))for item in shows:print("{0:<10} | {1:<10} | {2:<10} ".format(item['name'], item['start'], item['end']))# Or the more pythonic way:print("{name:<10} | {start:<10} | {end:<10} ".format(**item)
input()
)