首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用函数作为唯一参数打印名称列表

使用函数作为唯一参数打印名称列表
EN

Stack Overflow用户
提问于 2017-02-28 09:44:28
回答 3查看 338关注 0票数 0

我正在写一个程序,其中包含一个包含四位美国总统名字的列表。使用任何你想要的总统。然后,运行一个循环,将另外四位总统添加到列表中。使用列表作为其唯一参数调用另一个函数。第二个函数应该对列表进行排序,然后循环遍历列表,以便在自己的行上打印每个总统的名字。我完成了一些代码,但它只打印第一组名称的列表。我想不出如何对名单中输入的名字进行排序并打印出所有的名字。

下面是我的代码:

代码语言:javascript
运行
复制
president = 4

def main():

    names = [0] * president

    for pres in range(president):
        print('Enter the name of a president',sep='',end='')
        names[pres] = input()
        names.sort()
        print(names)


    for pres in range(president):
        print('Enter the name of another president',sep='',end='')
        names[pres] = input()


def names(name_list):
    name_list.sort()
    return name_list
EN

回答 3

Stack Overflow用户

发布于 2017-02-28 09:53:26

变量'pres‘在第二个循环的第17行被重置(它将遍历索引0-3并覆盖之前的4个主席)。为了快速解决问题,可以同时尝试第17行的names[pres + 4] = input()和第6行的names = [""] * 8

票数 0
EN

Stack Overflow用户

发布于 2017-02-28 12:13:28

代码语言:javascript
运行
复制
for pres in range(president):
    print('Enter the name of a president',sep='',end='')
    names[pres] = input()
    names.sort()
    print(names)

您不需要在每次添加新总裁时都执行names.sort()。如果你想添加4个总裁,那就添加它。排序是最后一步,对吧?

在第二个循环中,使用相同的索引添加另一个总裁。这将改变你列表中的元素,你仍然只有4个总裁,不会更多。我的建议是使用

代码语言:javascript
运行
复制
new_president = input()
names.append(new_president)

而不是

代码语言:javascript
运行
复制
names[pres] = input()

下面是我的完整代码:

代码语言:javascript
运行
复制
def create_presidents(no_presidents=4):
    presidents = []
    for _ in range(no_presidents):
        presidents.append(input("Enter a name: "))
    # More presidents
    for _ in range(no_presidents):
        presidents.append(input("Enter another name: "))
    presidents.sort()
    return presidents

def print_presidents(presidents):
    for president in presidents:
        print(president)

if __name__ == "__main__":
    no_presidents = 4
    presidents = create_presidents(no_presidents)
    print_presidents(presidents)   
票数 0
EN

Stack Overflow用户

发布于 2017-03-01 15:38:57

我甚至比我刚开始的时候更困惑:Huy vo,我认为默认情况下,4个总统的名字应该在列表中,然后用户激励并添加4个其他的人到该列表中,然后它应该显示该列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42498731

复制
相关文章

相似问题

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