TypeError的迭代错误:'_io.TEXTIO包装器'对象不是callab'

2024-09-30 18:30:00 发布

您现在位置:Python中文网/ 问答频道 /正文

问题: 我发现代码的语法有问题,特别是我用来循环外部文件的for循环。

我的程序是一个骰子游戏,应该注册用户,然后允许他们登录游戏。最后,它必须访问外部文件,该文件以前曾用于存储获奖者姓名(请记住,授权的姓名有一个单独的文件),并在其中循环,并将前5名获奖者姓名和分数输出到shell

我使用for循环遍历文件并将其附加到一个名为“Top 5 Winners”的数组中,但是我似乎很难理解代码的语法,因为我是一个非常新的Python。

访问文件的代码。你知道吗

with open("Top 5 Winners.txt","r") as db:
    top5Winners=[]

    for i in db(0,len([db])):

        top5Winners.append(line)

    top5Winners.sort()
    top5Winners.reverse() 
    for i in range(5):
        print(top5Winners[i])

错误代码:

for i in db(0,len([db])):

代码的len()部分就是问题所在

注: 我也不介意任何关于如何使这段代码更有效率的提示,这样我就可以在以后的项目中应用它。你知道吗


Tags: 文件代码in程序游戏fordblen
1条回答
网友
1楼 · 发布于 2024-09-30 18:30:00

你的压痕不符合要求。你确实打开了一个文件,使它可读,但之后你没有做任何事情。请参见以下示例:

with open(file, 'r') as db:
    #code with file (db)
#rest of the code

因此,您可以这样与代码结合:

top5winners = []                                  #Make a list variable
with open("Top 5 Winners.txt","r") as db:         #Open your file
    for i in db:                                  #Loop trough contents of file
        top5winners.append(i)                     #Append iterable to list
top5winners.sort(reverse=True)                    #Sort list and use reverse option
for i in range(0, 5):                             #Loop trough range
    print(top5winners[i])                         #Print items from list

请注意,StackOverflow的目的是帮助处理特定的案例,而不是一个要求其他人编写代码的站点。你知道吗

诚恳地说,克里斯·福尔。你知道吗

相关问题 更多 >