2016-11-04 123 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:

確保 「的elif」 是內聯與您的 「如果」,也有你的 「其他人」 的語句。 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)