2013-06-11 2 views
1

Я пытаюсь проверить простые числа от 2 до 100, но я получаю сообщение об ошибке с моим кодом, и я не знаю почему. (Я новичок в Python)Может ли кто-нибудь сказать мне, почему я получаю недопустимую синтаксическую ошибку с моим заявлением else?

def function(): 
    mylist = [1,2] 
    count = 0 
    for i in range(2,100): 
    for j in range(2,i): 
     if i % j == 0: 
     count += 1 
     if count > 0: 
     count += 0 
     else: 
      mylist.append(i) 
     count = 0 
    return mylist 

ответ

5

Это выглядит как проблема отступа, попробуйте следующее:

if count > 0: 
    count += 0 
else: 
    mylist.append(i) 

В Python, это очень, очень важно, что код правильно отступом. Вы видите, что ключевое слово elseимеет, чтобы отображаться на том же уровне, что и ключевое слово if. Используйте хороший IDE или текстовый редактор, чтобы помочь вам поймать такие ошибки!

+1

В общем, я, как правило, одержимы отступа с Java и JavaScript и действительно любой другой язык , Это был один из самых востребованных аспектов языка Python для меня, хотя с неправильным видом редактора, который не конвертирует вкладки в пробелы, такие ошибки могут быть сложными. –

1

Else должно быть отступом вдоль той же строки, что и оператор if. В противном случае else считается внутренним, если условие.

2

Python указывает блоки кода с пробелами так же, как на некоторых языках используются фигурные скобки. Ваш внутренний блок кода будет выглядеть следующим образом в языке с фигурными скобками, которые могли бы сделать его легче увидеть, где ошибка синтаксиса:

if (count > 0) { 
    count += 0; 
    else { 
    mylist.append(0); 
    } 
} 
Смежные вопросы