web-dev-qa-db-ja.com

「インデントされたブロックが必要」エラー?

なぜpythonが「インデントブロックの予期」エラーを出すのか理解できませんか?

""" This module prints all the items within a list"""
def print_lol(the_list):
""" The following for loop iterates over every item in the list and checks whether
the list item is another list or not. in case the list item is another list it recalls the function else it prints the ist item"""

    for each_item in the_list:
        if isinstance(each_item, list):
            print_lol(each_item)
        else:
            print(each_item)
17
kartikeykant18

そこの関数定義の後にdocstringをインデントする必要があります(行3、4):

def print_lol(the_list):
"""this doesn't works"""
    print 'Ain't happening'

インデント:

def print_lol(the_list):
    """this works!"""
    print 'Aaaand it's happening'

または、代わりに#を使用してコメントすることができます。

def print_lol(the_list):
#this works, too!
    print 'Hohoho'

また、 PEP 257 docstringsについて確認できます。

お役に立てれば!

25
aIKid

私もそれを経験しました:

このコードは機能せず、意図したブロックエラーが発生します。

class Foo(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
pub_date = models.DateTimeField('date published')
likes = models.IntegerField()

def __unicode__(self):
return self.title

ただし、return self.titleステートメントを入力する前にTabキーを押すと、コードは機能します。

class Foo(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
pub_date = models.DateTimeField('date published')
likes = models.IntegerField()

def __unicode__(self):
    return self.title

これが他の人の助けになることを願っています。

4
Jaky71