0

我最近一直在练习自己解决问题的技能,但这个问题一直存在。这是有问题的代码:

with open('login_names.txt', 'r') as f:
        login_name = [line.rstrip('\n') for line in f]
        k = input("name: ")
        if k in login_name :
            print("No errors")
        else:
            print("You have an error")
else:
    print('fail')
#var = login_name.index[random]
check = login_pass[login_name.index[random]]


with open('login_passw.txt', 'r') as p:
    login_pass = [line.rstrip('\n') for line in p]
    s = input("pass: ")
    if s == check :
        print("Works")
    else:
        print("Doesn't work")

f.close()
p.close()

基本上,当我运行代码时,它会说:

Traceback (most recent call last):
  File "C:/Python33/Test.py", line 29, in <module>
    check = login_pass[login_name.index[random]]
TypeError: 'builtin_function_or_method' object is not subscriptable

我在不同的问题上尝试了很多不同的建议,但没有一个对我有用......

4

1 回答 1

4

如果我们假设login_pass,login_namerandom是在该行所在的命名空间中定义的,那么您唯一的问题是您应该编写

check = login_pass[login_name.index(random)]

str.index是一个函数,它返回 中给出的参数的第一个索引str,因此您可以使用()而不是[],您可以将其用于列表、元组和字典。

于 2013-11-12T20:57:57.343 回答