【发布时间】: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 并习惯于它的隐式调用约定——而不是一个错字)。
-
旁注:对于逻辑布尔值,不要与
True或False比较。只需使用结果或结果的not。例如在这种情况下,if not var.isalpha() or len(var) != 1:。它比与True/False的显式比较更快且more Pythonic。
标签: python