您好我一直在尝试在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')继续返回语法错误 我试过玩它但没什么用。请帮忙。 顺便说一句,如果有任何模块可以帮助这个程序,这将是伟大的,但我也想知道为什么这个不工作
答案 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)