2015-04-26 5 views
1

Привет, я пытаюсь написать программу в python 2.7, которая берет слово в качестве своего ввода и выводит количество букв в слове. Сначала он работал, но что-то случилось, и теперь он продолжает возвращать ошибку первой строкой, которая не является частью цикла while. Это часть кода:Почему цикл 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 постоянно возвращается синтаксической ошибки, что я пытаюсь поставить после блока в то время (в данном случае «нол = нол + 1») Я пытался играть с ним, но ничего не получилось. Пожалуйста помоги. Кстати, если есть какие-либо модули, которые могут помочь с этой программой, что было бы здорово, но я бы также хотел бы знать, почему это один не работают

+1

В будущем было бы здорово включить то, что в SyntaxError входит в вопрос. Также, в какой строке он включен. Мой интерпретатор говорит, что SyntaxError находится в строке 5 - и поэтому я изучил эту строку и строку раньше. Похоже, вам не хватает закрывающей круглой скобки на строке в цикле 'while'. – gabe

+0

Шахта не говорила, какая линия это была - она ​​продолжала меняться – JediPythonClone

ответ

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.

+0

Это сработало спасибо btw Я ненавижу опечатки – JediPythonClone

+0

@JediPythonClone, не стоит беспокоиться, это происходит;) –

2

Изменить этот

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

к этому

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

Обратите внимание, что скобка в конце концов.

+0

Спасибо, что так много работало btw typos suck – JediPythonClone

2

Существует встроенная функция для получения длины строки в python.

word = "test" 
length = len(word) 
+0

OP, вероятно, просто пытается создать их собственная функция по собственной воле. – nikaltipar

+0

Он также просил о любых «модулях», которые могли бы помочь. – Darwin

Смежные вопросы