Вам не нужны эти булевы флаги, циклы на основе диапазона или дополнительные, если условия:
usernames=["u1","u2","u3"]
while True:
user = input("Enter username: ")
if user in usernames:
print("Username found at Index: {}".format(usernames.index(user)))
break
else:
print("Sorry, username not found. Try again")
РЕДАКТИРОВАТЬ :
Но если вы должны продолжить с текущейподход использования цикла for, поместите блок else на внешний цикл for и остановите его, если он найден:
usernames = ["u1","u2","u3"]
found = False
while found == False:
username = input("Enter username: ")
for i in range(len(usernames)):
if username == usernames[i]:
print("Username found at Index: {}".format(i))
break
else: # not and indentation error
print("Sorry, username not found. Try again")
EDIT 2 : (без логических флагов)
usernames = ["u1","u2","u3"]
while True:
username = input("Enter username: ")
for i in range(len(usernames)):
if username == usernames[i]:
print("Username found at Index: {}".format(i))
break
else: # not and indentation error
print("Sorry, username not found. Try again")
ВЫХОД (во всех случаях):
Enter username: 2334
Sorry, username not found. Try again
Enter username: u2
Username found at Index: 1