我最近一直在练习解决自己问题的技巧,但这个问题仍然存在。这是有问题的代码:
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
我在不同的问题上尝试了很多不同的建议,但没有一个对我有用......
答案 0 :(得分:4)
如果我们假设login_pass
,login_name
和random
在该行所在的命名空间中定义,那么您唯一的问题是您应该编写
check = login_pass[login_name.index(random)]
str.index
是函数,它返回str
中给出的参数的第一个索引,因此您使用()
代替[]
,您将用于列表,元组和词典。