【发布时间】:2015-07-20 08:03:12
【问题描述】:
我正在尝试创建一个程序,该程序要求用户输入“名称”并检查以确保名称是字母顺序,不会太长,并且不在名为 Unacceptable_Names 的文件中(包含不适当的名称)
为确保程序的每个用户不使用相同的名称,当玩家输入名称时,我将其附加到 Unacceptable_Names,然后当下一个玩家玩时,如果他们在这个文件。
下面的代码适用于文件中已经创建的单词,但是当我重播并输入相同的名称时,我没有收到错误。有人可以帮助解决为什么没有检查名称吗?
def Char_Name(self,name):
string1=str(name).lower()
unacceptable_names=open("C://Users//Documents//Unacceptable_Names.txt", "r")
unacceptable_names2=open("C://Users//Documents//Unacceptable_Names.txt", "a")
names_list= []
for line in unacceptable_names.readlines():
for i in line.split(","):
names_list.append(i.strip())
if name.isalpha()==False:
print("You entered a name containing non-alphabetic characters, pease reenter a new name:")
main()
elif len(name)>=10:
print("You entered a name containing 10 or more characters, pease reenter a new name:")
main()
elif string1 in names_list:
print("You entered a name containing bad words or a name already in use! Try again.")
main()
else:
unacceptable_names2.write("\n"+str(name)+",")
unacceptable_names2.close()
self.character_name=name
这是 unacceptable_names 在输入名字“Emily”后的样子:[以及之前文件中的一些其他坏词-如果输入所有这些都会给我一个错误]
皱巴巴的海星, XX, xxx, 瑶瑶 黄色的阵雨, 呸呸呸, 动物癖, 艾米丽,
但是,如果我手动进入文本文件并准确地写出上面的“Emily”,它会给我我需要的错误消息。
【问题讨论】:
-
“我确实遇到了错误” 哪个错误?如果可能,请显示确切的错误消息,如果合适,请显示异常的完整堆栈跟踪。
-
第一次停止播放后是否检查文件是否仍然存在?
-
不,我说我没有收到错误 - 这就是问题所在。该名称附加到文件中,但是当我重新启动程序时(使用文件中的名称)尝试输入名称时没有出现错误。例如,我将第一次输入名称“Emily”。 Emily 追加到文件中。如果我重新启动程序并再次输入“Emily”,我不会收到 Emily 已在文件中的错误。
-
重启后是否调用
Char_Name函数? -
试试
unacceptable_names2.write(name + '\n')