2016-11-04 2 views
-4

Python говорит, что у него есть синтаксическая ошибка в этой строке «elif (i% 7 == 0) или str.count (str (i), '7')> 0:", и я не могу понять это , Я новичок в Python, поэтому это должно быть что-то простое.Ошибка простого синтаксиса

k=int(input("enter the value for k:")) 

n=int(input("enter the value for n:")) 
if k>=1 and k<=9: 
    for i in range(1,n+1): 

      if (i%7==0) and str.count(str(i),'7')>0: 
       print("boom-boom!") 
      elif (i%7==0) or str.count(str(i),'7')>0: 
        print("boom") 
       else: print(i) 
+2

'' elif' и else' должна быть отступ на тот же уровень, как 'if' – GolfWolf

+0

У вас есть проблемы с отступом. Вы должны использовать современный редактор, такой как [PyCarm] (https://www.jetbrains.com/pycharm/), чтобы этого избежать. –

+1

Если вы новичок, первым шагом является изучение, а не запрос ответов. – TigerhawkT3

ответ

0

Добавить правильный отступ:

k=int(input("enter the value for k:")) 

n=int(input("enter the value for n:")) 
if k>=1 and k<=9: 
    for i in range(1,n+1): 
     if (i%7==0) and str.count(str(i),'7')>0: 
      print("boom-boom!") 
     elif (i%7==0) or str.count(str(i),'7')>0: 
      print("boom") 
     else: 
      print(i) 
1

вопрос с вашей identation:

Убедитесь, что «Элиф» инлайн с «если», а также ваш «еще» заявление. Python чувствителен к углублениям и пространствам.

if (i%7==0) and str.count(str(i),'7')>0: 
    print("boom-boom!") 
elif (i%7==0) or str.count(str(i),'7')>0: 
    print("boom") 
else: 
    print(i) 
0

Вот улучшенное решение:

k = int(input("enter the value for k:")) 
n = int(input("enter the value for n:")) 

if 1 <= k <= 9: 
    for i in range(1, n + 1): 
     text = str(i) 
     if i % 7 == 0 and text.count('7'): 
      print("boom-boom!") 
     elif i % 7 == 0 or text.count('7'): 
      print("boom") 
     else: 
      print(i)