我在Python3.5上做了一个程序,你可以找到与用户名链接的密码,为现有用户创建一个新密码,并在字典中添加一个新的用户和密码,然后对它进行pickle处理,这样每次我加载程序时,所有的用户名和密码都会出现在那里。你知道吗
出现的错误是在创建pickle文件之后(在第一次运行它之后),然后在第6行出现错误
AttributeError: Can't get attribute 'NewPass' on <module '__main__' (built-in)>
发生。你知道吗
这是我的剧本:
import sys
import pickle
import os
if os.path.exists("branston.p"):
LOGG = pickle.load(open('branston.p', 'rb'))
else:
LOGG = {'Sam': ('CHRIST')}
def Find():
Username = input("Say a Username.")
print (LOGG[Username])
def NewPass():
Username = Input("Enter your username.")
Newpass = input("Enter your new password")
if NewPass == input("Confirm password"):
LOGG[Username] = (NewPass)
def NewEntry():
NewUser = input("Enter your new username.")
Newpass = input("Enter your new password.")
LOGG[NewUser] = (NewPass)
loop = True
while loop == True:
function = input("Say what you want me to do.'Find', 'NewPass', 'NewEntry', 'Stop'.")
if function == ("Find"):
Find()
elif function == ("NewPass"):
NewPass()
elif function == ("NewEntry"):
NewEntry()
elif function == ("Stop"):
f = open('branston.p', 'wb')
pickle.dump(LOGG, f)
f.close()
sys.exit()
任何帮助都将不胜感激。谢谢!你知道吗
当你这么做的时候
您正在将函数
NewPass
分配给dict条目。您可能打算分配密码字符串,因此它应该是。你知道吗注意:括号是多余的。我还建议避免使用大写字母作为变量名的第一个字符,否则很容易混淆变量名和函数名。你知道吗
相关问题 更多 >
编程相关推荐