我在做 Python 作业时遇到了问题。
该程序的本质是创建一个包含用户数据及其密码的文本文件。并在程序本身中,进一步编辑和更改数据(删除、创建新用户)。
但我不能写下和删除列表中的行。我很困惑,很难理解如何解决问题,请帮助并解释我做错了什么。
这是我的程序代码。
parol=""
passw=["90232","Soroka5","346129S"]
names=["Sasha","Nikita","Nikolai"]
my_file = open("data.txt", "w+")
def registration(passw,names):
newparol=""
while newparol !="R" :
newparol=input("Введите новое имя: ")
if newparol in names:
print("Такое имя уже есть, предложите другое. \n : ")
continue
names.append(newparol)
newlogin= input("Введите пароль: ")
passw.append(newlogin)
#control.update(newparol)
print(passw)
print(names)
f = open('data.txt', 'wt')
for s in passw:
f.write(s + '\n')
for s in names:
f.write(s + '\n')
return passw,names
def udal(passw,names):
print("\nСписок пользователей: \n")
print("Пароль: ", passw)
print("Логин: ", names)
newname=""
while newname !="X" :
newname=input(" Введите логин для удаления. (Или X что бы вернутся в меню.)\n : ")
if newname in names :
numb=names.index(newname)
f = open('data.txt', 'w')
print("Удаленно!")
names.remove(newname)
passw.pop(numb)
print(passw)
print(names)
else:
print("Такого имени нет. ")
return passw,names
while parol!="X":
parol= input(" Добро пожаловать. \n Введите X для завершения работы.\n Или введите R для создания нового пользователя. \n Введите D - что бы удалить существующего пользователя. \n Или введите свой пароль что бы войти. \n : ")
if parol=="R" :
registration(passw,names)
continue
elif parol=="D":
udal(passw,names)
continue
elif parol=="X":
break
elif parol in passw:
numb=control.index(parol)
person=names[numb]
print("\nПоздравляю! ", person, " - Вы в системе.")
else:
print("Ошибка в пароле. Похоже такого не существует.")
input("\n Досвидания!")
1 个回答