要创建条件,请不断提示用户重新输入查询的答案

2024-04-24 14:14:56 发布

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

我想创建一个条件,让用户不断地提供问题的输入,直到给出一个不重复的答案。我已经更新了代码,但然后它不工作,因此我正在寻求帮助。代码如下:

我的原始代码:

choice=int(input("Enter your move (1-9):".strip()))-1
if board[choice] ==" ":
    board[choice] = icon
else:
    print()
    print("That space is taken!")

代码的问题是,如果输入了重复的chocie,用户就没有机会再次输入答案。我把代码改成如下:

更新的代码

def check_duplicate():
    while board[choice] !=" ":
        print ("Duplicate input")
        choice=int(input("Enter your move (1-9):".strip()))-1
        board[choice]

我用check\u duplicate来替换上面的旧代码。它不起作用。有人能指出我犯了什么错误吗?谢谢


Tags: 答案代码用户boardinputyourmovecheck
1条回答
网友
1楼 · 发布于 2024-04-24 14:14:56

将输入代码包装成一个循环。有一种方法:

while True:
    choice=int(input("Enter your move (1-9):".strip()))-1
    if board[choice] ==" ":
        board[choice] = icon
        break
    else:
        print()
        print("That space is taken!")

还有其他方法,但是这种使用while True:并用break语句停止的方法在Python中很常见

请注意,如果电路板上没有开放点,或者用户出于某种原因拒绝输入开放点,则此循环将永远不会停止。一定要防止前者发生


至于更新代码的特殊问题:

  1. 在进行任何输入之前打印“重复输入”
  2. 输入完成后,执行board[choice],它只计算电路板的位置。。。然后什么也不做就扔掉了

原始代码的明显问题:

  1. 如果输入了重复的chocie(如您所述),则不会给用户再次输入答案的机会
  2. 如果输入了一个数字,代码会假设空间被占用,而没有实际检查是否是这样

我不能告诉你正确的代码应该是什么,因为你没有给出足够的上下文来理解你想要的

相关问题 更多 >