所以我试着做一个测验,这是我用Python学过的第一门课程,所以我并不擅长这项课程。无论如何,我试图为我的玩家做错误处理。
我会尝试描述我尝试做的事情以及我无法弄清楚的事情。
所以这是代码。
出于某种奇怪的原因,我的到来并没有从我希望它开始的地方开始。这也是我的第一个问题。
def save_names(self):
playerlist = []
current_players = []
all_players_evey = list_of_all_players() #Makes all_players_ever into a list of names
for i in range(self.plyers): #just a number
name=input("Pick a name")
a=True
while a:
if name in self.current_players:
print("Pick a different name")
self.save_names(i)
else:
self.current_names.append(name)
if (name+".txt") in all_players_ever:
print("You already have a registered score")
choice = input("1. wanna overwright your old score?\n2. Wanna save your old result?")
if choice == "1":
a=False
elif choice == "2":
self.save_names(i)
else:
print("Wrong choice")
else:
self.playerlist.append(name)
a=False
return self.playerlist
所以,让我们说这次有2名球员。
所以我想要检查的第一件事是让当前的玩家不会选择相同的名字。 (因为在这种情况下它只有2个玩家,只有当第二个人输入他的名字时才会感兴趣。)
所以在那之后我想检查我是否已经将该名称中的分数保存为txt文件。
如果我这样做,玩家将获得这两个选项。
如果此人选择第一个选项(1),则脚本正常。它只是跳过迭代并转到下一个玩家。
然而,如果这个人选择第二个选项是2,那么剧本真的很混乱,在一些奇怪的循环中,我无法理解。如果第二个玩家选择与第一个玩家相同的名字,也会发生同样的事情。
因此。问题在于self.save_names(i)
方法,如果我没有弄错的话。
我希望你们能够找到我想要的代码,并提出一个出色的解决方案!