包含函数时,Python代码将无法运行

时间:2019-08-18 12:54:14

标签: python

我正在尝试使用列表和输入(我很新),并且我的代码遇到了这个问题: 如果我注释掉该功能,则输入代码可以正常工作。我不知道怎么了。

我尝试遍历代码并以不同的方式重新编写代码,但这没用。

students = []
forms = []


def main(formCount, allform):
    while len(students) < formCount:
        studentName = input("Student's Name:")
        students.append(studentName)
        forms.append(allform)
        print("Student Added:" studentName "in" allform)
        print("-------------")

for s,f in zip(students, forms):
    print(s, f)

formNo = input("Number of Students:")
form = input("Student Form:")
main(formNo, form)

预期结果: 它会在表格中要求学生人数,然后是表格,然后继续获取学生姓名。

实际结果: 终端中什么也没有显示(我正在使用Visual Studio Code中的外部终端)。

我没有收到任何错误消息,但是当我尝试继续时,它说语法无效。

2 个答案:

答案 0 :(得分:0)

移动此部分:

for s,f in zip(students, forms):
    print(s, f)

成为代码的最后部分-在main(formNo, form)之后-这样,代码将打印出main函数中累积的所有值。

此外,为了使代码正常运行,请在此行中添加int“广播”:

while len(students) < int(formCount):

由于您从用户输入中获得的formCountstring,因此您无法在intstring之间进行比较。

还有一件事,print语句的格式不正确,如果您使用的是Python 3.6+,则只能使用f-string功能:

print(f"Student Added: {studentName} in {allform}")

您脚本的输出应该是这样的:

Number of Students:2
Student Form:Test
Student's Name:Tim
Student Added: Tim in Test
-------------
Student's Name:Tom
Student Added: Tom in Test
-------------
Tim Test
Tom Test

答案 1 :(得分:-1)

您的表单计数有误,您正在将formNo传递给主函数,并且由于input()返回了一个字符串formNo是一个字符串,并且您在主函数中正在使用它进行比较int while len(students) < formCount是非法的(尝试比较文本和数字是否对您有意义)。 因此,请考虑将您的字符串输入转换为int形式
formNo = int(input("Number of Students:"))