【问题标题】:How to detect enter input in Python? [closed]如何检测Python中的输入? [关闭]
【发布时间】:2020-03-03 02:07:29
【问题描述】:

我正在做一个刽子手游戏,

我差不多完成了,但一件事不起作用的是,如果用户输入,按下回车键,它只是说他们赢了。

所以我一直在尝试寻找检测输入输入的方法,然后从那里continue 回到 while 循环。

我试过了

if guess == ord(13):
   print("Please enter a letter.")
   continue

if guess == '\r'
    print("Please enter a letter.")
    continue

两者都不是真正的工作,

由于某种原因,它进入了我的 for 循环,通过认为它在我的答案词中进行迭代,即使我的答案词是 .. 一个词而不是任何输入键,并且基本上填充了列表并使其赢得游戏,所以必须想办法检测回车键。

有什么想法吗?

【问题讨论】:

  • 请提供一个最小示例:stackoverflow.com/help/minimal-reproducible-example 这将帮助我们帮助您。从您发布的代码中,我们看不到 guess 的来源。而且您的问题中有很多多余的上下文,例如您正在编写一个刽子手游戏,并且您的代码中的某处有一个 while 循环等等。这对于解决您检测 Enter 输入的问题并不是必需的。
  • 请提供更完整的代码,如果没有所有信息,解决这个问题很复杂。
  • 如果用户立即回车,则表示输入为空。所以基本上if guess == "" 应该完成这项工作

标签: python if-statement ascii enter ord


【解决方案1】:

尝试使用正则表达式:

import re

if not re.match('[a-zA-Z]', guess):
    print("Please enter a letter.")
    continue

在这里颠倒逻辑的另一个好处是你可以捕捉到任何不是大写或小写字母的东西。

【讨论】:

    【解决方案2】:

    如果我们想要获取输入并且想要验证用户没有简单地输入任何内容,我们可以创建一个while 循环,该循环调用输入直到输入不同于空字符串:

    guess = ""
    while guess != "":
        guess = input("Please Enter a letter!")
    

    我们可以将它放在您的代码中的任何位置,然后继续并根据需要使用guess

    【讨论】:

    • 你投反对票的这个答案有什么问题?只是好奇。
    【解决方案3】:

    当有人按回车键输入时,输入字符串为空。所以你应该只检查一个空字符串来检测 Enter 键:

    guess = input("Enter guess:")
    if not guess:
        #this means someone just hit the enter key
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 2013-07-22
      • 2015-01-04
      • 1970-01-01
      • 2012-11-11
      • 1970-01-01
      • 2021-04-07
      相关资源
      最近更新 更多