forloops(如果需要,如何让它忽略某些部分)

2024-10-04 07:35:01 发布

您现在位置: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输入,我必须输入它三次,然后它才能做它应该做的事情,以此类推


Tags: inforbyifisnotelsetaken
1条回答
网友
1楼 · 发布于 2024-10-04 07:35:01

简单明了:您的输入行位于循环中,因此它在循环的每个过程中都请求用户输入。将uname = input("Which username do you want to see?\n")移到for n in range(len(ulist)):上方的行

但是,正如@pvg所说,请查看using examples when asking questions指南

相关问题 更多 >