预计缩进块 - python

时间:2017-04-22 00:02:47

标签: python function indentation main

我的第一个编程问题,我正在尝试理解Python。

我在这段代码上得到了一个缩进块:     来自随机导入*

def FillStudentsNames ():

    studentNames = []
    for studentNames in range(1,11):
        user_input = input("What is the students name? : ")
        print(user_input)


def FillStudentsGrades():
        studentGrades =[]
        for studentGrades in range (1,11):
            grade = randint(1,100)
            print(grade)

        return studentGrades


def ShowData(studentNames, studentGrades):
    counter = 0
    studentNames=[]
    studentGrades=[]
    for counter in range(0,10):

    def main():
    FillStudentsNames = StdNames

    main()

和我'不太确定为什么。我缩进了" def main",因为解析器显示错误的地方。现在我收到相同的消息,但没有指出特定的空间。

3 个答案:

答案 0 :(得分:1)

for 循环的主体必须缩进。你不能把它留空。因此, def main():成为该主体的第一个语句,以及解析器标记错误的那个语句。

目前,请尝试使用虚拟语句:

for counter in range(10):
    pass

你很好地剔除了你的程序,并且一次工作几行。

答案 1 :(得分:0)

您收到错误,因为def main行之前的for循环不包含任何指令。 python期望在那里有一个缩进块'告诉它在循环的每次传递中做什么。 一般情况下,当您遇到语法错误时,最好在错误消息中报告的行之前查找行上的实际错误。

答案 2 :(得分:0)



def FillStudentsNames ():

    studentNames = []
    for studentNames in range(1,11):
        user_input = input("What is the students name? : ")
        print(user_input)











def FillStudentsGrades():
        studentGrades =[]
        for studentGrades in range (1,11):
            grade = randint(1,100)
            print(grade)

        return studentGrades





def ShowData(studentNames, studentGrades):
    counter = 0
    studentNames=[]
    studentGrades=[]
    for counter in range(0,10):
        # do something down otherwise main would be assumed to be part of for
        i = 2





def main():
   FillStudentsNames = StdNames



main()




见上面的好友