Here is my python code, for some reason it keeps giving me a List Index Out Of Range error. So if anyone could help me find the bug, that would be great. Thank You! (This code has been written in python 3)
import random
import pyautogui
import time
import sys
def main():
p1 = 0
p2 = 0
p3 = 0
p4 = 0
points = []
cats = []
print()
print(' What do you want to rank?')
sub = input(' ')
print()
print(' Enter 4 different items to rank:')
cat1 = input(' ')
cat2 = input(' ')
cat3 = input(' ')
cat4 = input(' ')
a1 = cat1
a2 = cat2
a3 = cat3
a4 = cat4
cats = [cat1,cat2,cat3,cat4]
print()
print(' Starting your rank' ,end='')
time.sleep(0.5)
print('.', end='')
time.sleep(0.5)
print('.', end='')
time.sleep(0.5)
print('.', end='')
print(' ')
print(' ' + sub)
print(' ')
print(' ')
print(' ')
random.shuffle(cats)
print()
print(' Which do you prefer, '+ cats[0] + ' or ' + cats[1] + '?')
w1 = input(' ')
if w1 == cats[0]:
p1 += 1
elif w1 == cats[1]:
p2 += 1
else:
print(' Invalid answer, please start over')
main()
print(' Which do you prefer, '+ cats[1] + ' Or ' + cats[2] + '?')
w2 = input(' ')
if w2 == cats[1]:
p2 += 1
elif w2 == cats[2]:
p3 += 1
else:
print(' Invalid answer, please start over')
main()
print()
print()
print(' Which do you prefer, '+ cats[2] + ' Or ' + cats[3] + '?')
w3 = input(' ')
if w3 == cats[3]:
p4 += 1
elif w3 == cats[2]:
p3 += 1
else:
print(' Invalid answer, please start over')
main()
print(' Which do you prefer, '+ cats[3] + ' Or ' + cats[0] + '?')
w4 = input(' ')
if w4 == cats[0]:
p1 += 1
elif w4== cats[3]:
p4 += 1
else:
print(' Invalid answer, please start over')
main()
print()
print()
print(' Do You Prefer, '+ cats[1] + ' Or ' + cats[3] + '?')
r1 = input(' ')
if r1 == cats[1]:
p2 += 1
elif r1 == cats[3]:
p4 += 1
else:
print(' Invalid answer, please start over')
main()
print(' Do You Prefer, '+ cats[0] + ' Or ' + cats[2] + '?')
r2 = input(' ')
if r2 == cats[0]:
p1 += 1
elif r2 == cats[2]:
p3 += 1
else:
print(' Invalid answer, please start over')
main()
print()
global fp
fp = []
global sp
sp = []
global tp
tp = []
global rp
rp = []
points = [p1, p2, p3, p4]
points.sort(reverse = True) # Sorts the list from greatest to least
if p1 == p2:
if w1 == cats[0]:
p1 += 1
elif w1 == cats[1]:
p2 += 1
elif p1 == p3:
if r2 == cats[0]:
p1 += 1
elif r2 == cats[2]:
p3 += 1
elif p1 == p4:
if w4 == cats[0]:
p1 += 1
elif w4 == cats[3]:
p4 += 1
elif p2 == p3:
if w2 == cats[1]:
p2 += 1
elif w2 == cats[2]:
p3 += 1
elif p2 == p4:
if r1 == cats[1]:
p2 += 1
elif r1 == cats[3]:
p4 += 1
elif p3 == p4:
if w3 == cats[3]:
p4 += 1
elif w3 == cats[2]:
p3 += 1
elif points[0] == p1:
fp = [a1, str(p1)]
elif points[0] == p2:
fp = [a1, str(p2)]
elif points[0] == p3:
fp = [a1, str(p3)]
elif points[0] == p4:
fp = [a1, str(p4)]
elif points[1] == p1:
sp = [a2, str(p1)]
elif points[1] == p2:
sp = [a2, str(p2)]
elif points[1] == p3:
sp = [a2, str(p3)]
elif points[1] == p4:
sp = [a2, str(p4)]
elif points[2] == p1:
tp = [a3, str(p1)]
elif points[2] == p2:
tp = [a3, str(p2)]
elif points[2] == p3:
tp = [a3, str(p3)]
elif points[2] == p4:
tp = [a3, str(p4)]
elif points[3] == p1:
rp = [a4, str(p1)]
elif points[3] == p2:
rp = [a4, str(p2)]
elif points[3] == p3:
rp = [a4, str(p3)]
elif points[3] == p4:
rp = [a4, str(p4)]
print(' Rank of ' + sub + ':')
print()
print(' 1. ' + fp[0])
print(' 2. ' + sp[0])
print(' 3. ' + tp[0])
print(' 4. ' + rp[0])
print()
print(' Do you want to rank something else?')
y = input(' ')
if y == 'Yes' or y == 'yes' or y == 'y' or y == 'ye':
main()
else:
sys.exit()
main()
Aucun commentaire:
Enregistrer un commentaire