"要求特定输入而不使用b"

2024-04-19 08:15:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个骰子扑克游戏,尝试在继续游戏之前询问用户是否愿意玩,然后询问玩家是否愿意在每次游戏后再次玩

我不确定如何允许除Y和N以外的错误输入,以便告诉用户输入正确答案,然后循环输入,直到其中一个被输入。我不能休息

play = True
s = input("Would you like to play dice poker [y|n]? ")
if s == "y":
    play = True
elif s == "n":
    play = False
else:
    print("Please enter y or n")

while play:

从这里开始是我的游戏代码

下面这一节在每场比赛结束时重复

  again=str(input('Play again [y|n]? '))

    if again == "n":
        play = False
    if again == "y":
        play = True
    else:
        print('Please enter y or n')

Tags: or用户falsetrue游戏inputplayif
1条回答
网友
1楼 · 发布于 2024-04-19 08:15:02

将您的输入包装在一个函数中,该函数用于计算用户输入,如果它无效,则根据需要递归调用它。示例:

def keep_playing():
    valid = 'ny'
    again=str(input('Play again [y|n]? '))
    a = again.lower().strip()  # allow for upper-case input or even whole words like 'Yes' or 'no'
    a = a[0] if a else ''
    if a and a in valid:
        # take advantage of the truthiness of the index: 
        # 0 is Falsy, 1 is Truthy
        return valid.index(a)
    # Otherwise, inform the player of their mistake
    print(f'{again} is not a valid response. Please enter either [y|n].')
    # Prompt again, recursively
    return keep_playing()

while keep_playing():
      print('\tstill playing...')

enter image description here

相关问题 更多 >