For-loop (как я могу заставить его игнорировать некоторые части, если это необходимо)

Skid Solo спросил: 13 октября 2017 в 06:10 в: python
def reporta():
    with open("userinfo.txt","r") as f:
        text = [line.strip() for line in f]
        ulist = [x.split(",") for x in text]
    for n in range(len(ulist)):
        uname = input("Which username do you want to see?\n")
        if uname == ulist[n][0]:
            print("The username is",ulist[n][0],"\nThe user's password is",ulist[n][1],"\nThe user's name is",
                  ulist[n][2],"\nThe user's age is",ulist[n][3],"\nThe user's year group is",ulist[n][4])
            for i in range (5,11):
                if i == 5:
                    if ulist[n][i] == "-1":
                        print("Maths easy has not been taken by",ulist[n][0])
                    else:
                        print(ulist[n][0],"got",ulist[n][i])
                elif i == 6:
                    if ulist[n][i] == "-1":
                        print("Maths medium has not been taken by",ulist[n][0])
                    else:
                        print(ulist[n][0],"got",ulist[n][i])
                elif i == 7:
                    if ulist[n][i] == "-1":
                        print("Maths hard has not been taken by",ulist[n][0])
                    else:
                        print(ulist[n][0],"got",ulist[n][i])
                elif i == 8:
                    if ulist[n][i] == "-1":
                        print("History easy has not been taken by",ulist[n][0])
                    else:
                        print(ulist[n][0],"got",ulist[n][i])
                elif i == 9:
                    if ulist[n][i] == "-1":
                        print("History medium has not been taken by",ulist[n][0])
                    else:
                        print(ulist[n][0],"got",ulist[n][i])
                else:
                    if ulist[n][i] == "-1":
                        print("History hard has not been taken by",ulist[n][0])
                    else:
                        print(ulist[n][0],"got",ulist[n][i])
            break

В этом фрагменте кода я пытаюсь распечатать вещи из файла, в соответствии с которым вводится имя пользователя, однако, если я пытаюсь ввести имя пользователя во второй или третьей строке списка Я должен ввести имя пользователя два или три раза, прежде чем он распознает его. Что я не включаю / делаю неправильно?

Пример:

file contains:
aad15,arbiter,aadam,15,11,-1,-1,-1,-1,-1,-1
jam11,jammy,james,11,15,-1,-1,-1,-1,-1,-1
ton15,tonehh,tony,15,11,-1,-1,-1,-1,-1,-1
mas15,radicallx,mash,15,11,-1,-1,-1,-1,-1,-1

Если я ввожу aad15 как имя пользователя, программа запускается так, как и должно быть. Если я ввожу jam11, я должен ввести его дважды, прежде чем он сделает то, что должен делать. Если я добавлю ton15, мне придется ввести его три раза, прежде чем он сделает то, что должен, и так далее.

0 ответов