Python:创建一个len(string)和string.isalpha条件

时间:2013-01-28 16:18:27

标签: python string conditional

我正在尝试创建一个似乎不能在我的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                           ^

3 个答案:

答案 0 :(得分:5)

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

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


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

if userinput.isalpha():
    # whatever

然后你的语法错误就会很好地消失......()之后的额外userinput)

答案 1 :(得分:2)

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

答案 2 :(得分: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.")