为什么While循环在下一个语句中创建语法错误

时间:2015-04-26 22:07:45

标签: python while-loop

您好我一直在尝试在python 2.7中编写一个程序,它以一个单词作为输入并输出一个单词中的字母数。起初它工作但发生了一些事情,现在它不断返回错误,第一行不是while循环的一部分。 这是代码的一部分:

def number_of_letters(input):
    nol = input.find(input[-1])
    while input[nol:] != input[-1]:
        nol = input.find(input[-1], input.find(input[-1] + 1)
    nol = nol + 1
    print nol

python解释器通过我尝试在while块之后放置的任何东西(在这种情况下'nol = nol + 1')继续返回语法错误 我试过玩它但没什么用。请帮忙。 顺便说一句,如果有任何模块可以帮助这个程序,这将是伟大的,但我也想知道为什么这个不工作

3 个答案:

答案 0 :(得分:5)

你错过了一个结束语:

nol = input.find(input[-1], input.find(input[-1] + 1)) #<- add here

如果您想计算实际字母的数量,可以使用str.isalpha

return sum(ch.isalpha() for ch in inp)

如果您不关心字符是什么,请使用len(inp)

避免使用input作为变量名,因为它会影响python函数。

答案 1 :(得分:2)

更改此

nol = input.find(input[-1], input.find(input[-1] + 1)

到这个

nol = input.find(input[-1], input.find(input[-1] + 1))

请注意最后的括号。

答案 2 :(得分:2)

有一个内置函数可以在python中获取字符串的长度。

word = "test"
length = len(word)