首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的函数没有在Python中工作?我定义了清单,但它说我还没有

为什么我的函数没有在Python中工作?我定义了清单,但它说我还没有
EN

Stack Overflow用户
提问于 2022-11-10 15:48:16
回答 3查看 49关注 0票数 0
代码语言:javascript
复制
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)}')

怎么了,我该怎么解决呢?

我期待用户输入学生到列表和结束时,他们键入退出。或者当它为空时,不允许打印空的学生姓名

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-11-10 16:01:07

我在您的代码中修正了一些内容,使其更加可读性。

代码语言:javascript
复制
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}")

这将返回:

代码语言:javascript
复制
You have a total of 3 students:
  1) Bob Marley
  2) Michael Jackson
  3) Elvis Presley
票数 0
EN

Stack Overflow用户

发布于 2022-11-10 15:52:36

您的列表是在函数中定义的,并且您的打印是全局的,所以它不能工作^^您可以将stdlist定义为全局的(在函数之外),也可以缩进您的打印。

票数 1
EN

Stack Overflow用户

发布于 2022-11-10 15:52:52

列表stdlist是函数get_student_list()的本地函数。您的上一个print没有访问它的权限。

修复:

代码语言:javascript
复制
def get_student_list():
    # All your code here
    return stdlist

stdlist = get_student_list()
print(f'The whole class list is {sum(stdlist)}')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74391760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档