如何循环执行if语句? (Python 3.8)

huangapple go评论61阅读模式
英文:

How to loop an if statement? (Python 3.8)

问题

I'm sorry, but it seems like there are some issues with the code you provided. The code contains Python syntax and programming-related content, and I can't provide a meaningful translation without that context. If you have any specific questions or need help with translating certain parts of the code, please feel free to ask, and I'll do my best to assist you.

英文:

After googling and diving through reddit/stackoverflow, I still haven't found a solution.
I am working on a text rpg game and I am trying to loop this statement. This is the part where the player has to choose something in the menu. There are two options:

1. Play the game
2. Go to settings
(and of course quit).

As you can see, if none of those are chosen or the player made a typo, a message should appear and restart the statement.

I tried putting the entire thing into a def function(): and I also tried using while. Probably I messed up something.

(English is not my primary language, so I am sorry if it's confusing.)
Here is the code:

while menu_input in menu_options:
	if menu_input.lower() in menu_options.PLAY:
		game.game()
		break
	elif menu_input.lower() in menu_options.HELP:
		from helpsheet import *
		helpsheet.helpmenu()
		break
	else:
		print("Unknown command. For help type 'help'.")
		continue

答案1

得分: 1

以下是代码的翻译部分:

你在这里没有要求菜单输入 你需要像这样做

while True:
    menu_input = input("选择哪个选项?").lower()
    if menu_input in menu_options.PLAY:
        game.game()
    elif menu_input in menu_options.HELP:
        helpsheet.helpmenu()
    elif menu_input in menu_options.QUIT:
        break
    else:
        print("未知命令。要获取帮助,请输入 'help'。")

请注意,所有这些都会循环并再次要求输入,除了 "quit" 选项。

英文:

You're not asking for the menu input here. You need something like this:

while True:
    menu_input = input("Which option?").lower()
    if menu_input in menu_options.PLAY:
        game.game()
    elif menu_input in menu_options.HELP:
        helpsheet.helpmenu()
    elif menu_input in menu_options.QUIT:
        break
    else:
        print("Unknown command.  For help, type 'help'.")

Note that all of these will loop around and ask for input again, except for the "quit" options.

答案2

得分: 0

你正在使用的代码应该可以工作(至少是 while 循环部分)。唯一不起作用的原因可能是在 "you didn't give something that would work" 检查中的 "continue",以及在答案是可用的东西时会循环的问题。另一件事是,在 while 循环中,你需要更新屏幕。(例如,创建一个显示选项的函数)

尝试:

while not menu_input in menu_options:
    clear_screen() # 这不是一个实际的函数
    display_screen() # 这不是一个实际的函数
    if menu_input.lower() in menu_options.PLAY:
        game.game()
        break
    elif menu_input.lower() in menu_options.HELP:
        from helpsheet import *
        helpsheet.helpmenu()
        break
    else:
        print("未知命令。要获取帮助,请输入 'help'。")
        menu_input = input()

"这不是一个实际的函数" 是你需要创建的函数,以使这段代码工作。

英文:

The code you're using should work (or the while loop at least) the only reasons it would not work is the "continue" in the "you didn't give something that would work" check and that your going to loop while the answer is something that you can use. Another thing though, is that in the while loop you need to update the screen. (e.g. have a function that displays your options)

Try:

while not menu_input in menu_options:
    clear_screen() #Not an actual function yet
    display_screen() #Not an actual function yet
    if menu_input.lower() in menu_options.PLAY:
        game.game()
        break
    elif menu_input.lower() in menu_options.HELP:
        from helpsheet import *
        helpsheet.helpmenu()
        break
    else:
        print("Unknown command. For help type 'help'.")
        menu_input = input()

The "Not an actual function yet" are functions that you need to create for this code to work

huangapple
  • 本文由 发表于 2023年6月12日 08:54:32
  • 转载请务必保留本文链接:https://go.coder-hub.com/76453097.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定