我正在尝试使用列表和输入(我很新),并且我的代码遇到了这个问题: 如果我注释掉该功能,则输入代码可以正常工作。我不知道怎么了。
我尝试遍历代码并以不同的方式重新编写代码,但这没用。
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中的外部终端)。
我没有收到任何错误消息,但是当我尝试继续时,它说语法无效。
答案 0 :(得分:0)
移动此部分:
for s,f in zip(students, forms):
print(s, f)
成为代码的最后部分-在main(formNo, form)
之后-这样,代码将打印出main
函数中累积的所有值。
此外,为了使代码正常运行,请在此行中添加int
“广播”:
while len(students) < int(formCount):
由于您从用户输入中获得的formCount
是string
,因此您无法在int
和string
之间进行比较。
还有一件事,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:"))