Python 3.x 请求输入,按enter键时停止询问,然后显示按字母顺序排序的列表,在差异行上分别打印每个项目

Python 3.x 请求输入,按enter键时停止询问,然后显示按字母顺序排序的列表,在差异行上分别打印每个项目,python-3.x,Python 3.x,挑战: 需要编写一个程序,要求用户输入一些数据,例如他们朋友的名字。当用户想要停止提供输入时,他只需按Enter键。然后,程序将显示按字母顺序排序的输入数据项列表。不要只打印列表,而是在不同的行上分别打印每个项目 y = [] def alfabetisch( element ): return element while True: user_input = input("Prompt: ") if user_input != "": y += [u

挑战: 需要编写一个程序,要求用户输入一些数据,例如他们朋友的名字。当用户想要停止提供输入时,他只需按Enter键。然后,程序将显示按字母顺序排序的输入数据项列表。不要只打印列表,而是在不同的行上分别打印每个项目

y = []

def alfabetisch( element ):
    return element

while True:
    user_input = input("Prompt: ")
    if user_input != "":
        y += [user_input]
    if user_input == "":
        break

for element in y:
    y.sort( key= alfabetisch )
    print( element )
我做了一些改变,现在它“有时”起作用了。如果我在“提示”处输入以下输入: [太棒了,太棒了,太棒了,太棒了]它会回馈你:[太棒了,太棒了,太棒了,太棒了,太棒了,太棒了]所以这是“太棒”的两倍,去掉了“太棒了”

但是,当我在“提示”下输入以下内容时:“[Amorf,Bread,Crest,Draft,Edith,Flood]它会返回:[Amorf,Bread,Crest,Draft,Edith,Flood],因此通过这个特定的输入,它会执行我希望它执行的操作


我做错了什么,有人能提供一些指针吗?

用户的输入是一个字符串。 如果用户没有输入任何内容,
input()
函数的输出为
'
(如注释中所述)

如果用户输入了多个项,例如您提到的朋友名列表,那么迭代该字符串将为您提供组成该字符串的所有字符

一种更具蟒蛇风格的方法是:

user_input = input("Prompt: ")
print('\n'.join(sorted(user_input.split())))

如果用户没有输入任何内容,结果是空字符串
'
,而不是
None
@jonrsharpe:Thnx,我已经尝试过了。当我测试这个时,我只能“输入数据”一次,然后程序停止了。到底试了什么?如果没有循环,当然你只能得到一个。@jornsharpe:我做了一些改变,现在它“有时”会起作用。如果我在“提示”下输入以下内容:“[Great,Azing,Super,Sweet,Nice]它会返回:[Great,Great,Nice,Super,Sweet]因此这是“Great”的两倍,不包括“Azing”。@jonrsharpe:但是当我在“提示”下输入以下内容时,[Amorf,Bread,Crest,Draft,Edith,Flood]它会返回:[Amorf,Bread,Crest,Draft,Edith,Flood],所以有了这个特殊的输入,它就完成了我想要它做的事情。