如何进行重复直到循环?

问题描述 投票:0回答:1

这里完全是新手。我想让用户输入一个与字典中的名称之一匹配的名称,否则程序会再次询问,直到输入正确的名称。这是代码:

class Yakuza:
    def __init__(self, name, clan):
        self.name = name
        self.clan = clan
        
    def present(self):
        print(f"Hello! I am {self.name} from the {self.clan} clan!")
        
user1 = Yakuza("Kiryu", "Dojima")
user2 = Yakuza("Nishikiyama", "Dojima")

Startup = input("Welcome to Yakuza 0! Press Enter to start.")

character_dictionary = {"Kiryu" : "Dojima Clan",
                        "Nishikiyama" : "Dojima Clan"}
print(character_dictionary)

character_select = input("Select your character: ")

while character_select in character_dictionary:

    if character_select == "Kiryu":
        user1.present()
            
    elif character_select == "Nishikiyama":
        user2.present()
    
    else:
        print("This character is not available. Try again")

我预计循环会一直工作,直到输入正确的名称,但它会永远持续下去。另外,character_select 输入是否在 while 循环之内或之外有什么关系吗?

while-loop
1个回答
0
投票
class Yakuza:
    def __init__(self, name, clan):  # Fixed __init__ typo here
        self.name = name
        self.clan = clan

    def present(self):
        print(f"Hello! I am {self.name} from the {self.clan} clan!")
    
user1 = Yakuza("Kiryu", "Dojima")
user2 = Yakuza("Nishikiyama", "Dojima")

Startup = input("Welcome to Yakuza 0! Press Enter to start.")

character_dictionary = {"Kiryu": "Dojima Clan", "Nishikiyama": "Dojima Clan"}
print(character_dictionary)

while True:  # Changed the condition here
    character_select = input("Select your character: ")  # Moved inside the loop
    if character_select in character_dictionary:
        if character_select == "Kiryu":
            user1.present()
            break  # Exit the loop after successful execution
        elif character_select == "Nishikiyama":
            user2.present()
            break  # Exit the loop after successful execution
    else:
        print("This character is not available. Try again.")
© www.soinside.com 2019 - 2024. All rights reserved.