Python代码错误3.3.2

时间:2013-11-12 20:46:17

标签: python python-3.x traceback

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

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

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

1 个答案:

答案 0 :(得分:4)

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

check = login_pass[login_name.index(random)]

str.index函数,它返回str中给出的参数的第一个索引,因此您使用()代替[],您将用于列表,元组和词典。