【问题标题】:Why isn't isalpha identifying whether or not the input is a letter? [duplicate]为什么 isalpha 不能识别输入是否是字母? [复制]
【发布时间】:2020-01-10 00:48:33
【问题描述】:

几乎是标题,我正在用 python 制作一个刽子手游戏,这个 def 应该确保输入实际上是一个字母,但它不起作用,怎么了?

def guess():    
    while True:
        var = (input())
        if var.isalpha == False or len(var) != 1:
            print ("Not a letter")
        else:
            print ("Is a letter")
guess()

【问题讨论】:

  • @roganjosh 抱歉,只是把它们删掉没那么重要
  • isalpha 是一种方法。您应该调用它,即var.isalpha()。也不推荐== False。您可以改用not var.isalpha()
  • 查看 REPL 中的 var.isalpha 是查看问题的好方法(如果它告诉您这是一个函数而不是布尔值,那就是一个很大的线索)。
  • (除此之外:之前的两次近距离投票都是错误的;我认为关闭重复的方法更有用一些,因为它为正在做的人提供了有用的指导this 作为一种思想——f/e,来自 Ruby 并习惯于它的隐式调用约定——而不是一个错字)。
  • 旁注:对于逻辑布尔值,不要与TrueFalse 比较。只需使用结果或结果的not。例如在这种情况下,if not var.isalpha() or len(var) != 1:。它比与True/False 的显式比较更快且more Pythonic

标签: python


【解决方案1】:

使用var.isalpha(),因为它是一个函数。

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    相关资源
    最近更新 更多