def get_student_list():
iStr = ""
stdlist = []
x = 1
while not iStr == "quit":
iStr = input(f'Please enter a new student name, ("quit" if no more student)')
if not iStr == "quit":
stdlist.append(iStr)
elif iStr == "":
print("Empty student name is not allowed.")
x += 1
print(f'The whole class list is {sum(stdList)}')怎么了,我该怎么解决呢?
我期待用户输入学生到列表和结束时,他们键入退出。或者当它为空时,不允许打印空的学生姓名
发布于 2022-11-10 16:01:07
我在您的代码中修正了一些内容,使其更加可读性。
def get_student_list():
stdlist = []
while True:
iStr = input('Please enter a new student name, ("quit" if no more student)')
if iStr == "quit":
return stdlist
elif iStr == "":
print("Empty student name is not allowed.")
else:
stdlist.append(iStr)
stdList = get_student_list()
print(f"You have a total of {len(stdList)} students:")
for i, name in enumerate(stdList):
print(f" {i+1}) {name}")这将返回:
You have a total of 3 students:
1) Bob Marley
2) Michael Jackson
3) Elvis Presley发布于 2022-11-10 15:52:36
您的列表是在函数中定义的,并且您的打印是全局的,所以它不能工作^^您可以将stdlist定义为全局的(在函数之外),也可以缩进您的打印。
发布于 2022-11-10 15:52:52
列表stdlist是函数get_student_list()的本地函数。您的上一个print没有访问它的权限。
修复:
def get_student_list():
# All your code here
return stdlist
stdlist = get_student_list()
print(f'The whole class list is {sum(stdlist)}')https://stackoverflow.com/questions/74391760
复制相似问题