0

我正在尝试创建一个在我的 Python 代码中似乎不起作用的条件语句。我试图阅读并理解原因,并单独声明布尔值似乎没有缺陷。但是,当我尝试将它们放入条件语句中时,会出现语法错误。也许有人可以看一下并检查我的代码在这种情况下失败的原因:

userinput = raw_input("Please enter a word: ")

if (len(userinput) > 1 and userinput.isalpha() == True):
    print "Thanks for entering a word."
else:
    print "That was not an acceptable word."

具体来说,我收到一个语法错误,指出:

if len(userinput) > 1 and userinput.isalpha() == True):
SyntaxError: invalid syntax                           ^
4

3 回答 3

5

因为输入字符串保留了\n导致输入失败的字符:

考虑userinput = raw_input("Please enter a word: ").strip()改用...


此外,isalpha()已经检查长度是否为一个或多个,将您的代码减少到:

if userinput.isalpha():
    # whatever

然后你的语法错误很好地消失了......()后面的额外userinput)

于 2013-01-28T16:21:05.713 回答
2

您粘贴的回溯显示与原始代码段不同的代码。之后有一个额外的右括号len(userinput),这是错误的原因。

于 2013-01-28T16:26:20.737 回答
1

我做了三个更正:

  • 第一个在 if 语句中(isalpha() 已经返回一个布尔值)
  • 第二个是 strip 函数,以便在输入末尾删除多余的空格
  • 第三个是打印字符串周围的括号(为了使其与python3兼容)

最终代码是:

userinput = raw_input("Please enter a word: ").strip()

if (len(userinput) > 1 and userinput.isalpha()):
    print ("Thanks for entering a word.")
else:
    print ("That was not an acceptable word.")
于 2013-01-28T16:21:53.927 回答