【发布时间】:2021-04-15 08:25:09
【问题描述】:
问题提示如下:
创建交互式学生记录系统。
提示用户输入学生姓名。
然后提示用户输入数字等级
重复此操作,直到用户输入“完成”来代替名称。
然后打印每个学生和他们的平均成绩
我想出了以下代码(我是初学者,如果这很明显很抱歉)
# I am creating a dictionary so I can store multiple values that are associated with one name
lst = []
dict = {}
while True:
try:
name = str(input("Please enter student's name."))
grade = int(input("Please enter grade student recieved."))
if (name not in list(dict.keys()) and name != "done"):
lsst = []
lsst.append(grade)
dict[name] = lsst
print(lsst)
continue
elif name in list(dict.keys()):
lsst.append(grade)
print(lsst)
continue
elif name == "done":
break
except ValueError:
print("Try Again")
pass
for i in range(list(dict.keys())):
print(f"{name}: {grade}")
我在输入姓名输入“完成”后尝试打印平均值,但它只是继续进行下一个输入查询。为什么会这样,我该如何解决?
【问题讨论】:
-
break只是打破了try-块,然后程序继续while-循环。将 except-block 直接移动到 try-block 下方,然后将 if-elif-elif 块缩进,使其超出 try-except 块。顺便说一句,python缩进标准是每级4个空格,见PEP8 - Indentation -
您提供的代码存在一些问题。最明显的问题是它没有正确运行(这一行抛出错误
for i in range(list(dict.keys())):)。请修复您的代码并确保它正确运行并且行为与您描述的完全一致。
标签: python