从字符串python创建一个列表

时间:2016-11-25 19:05:26

标签: python python-3.x

我被分配编写一个程序,接受来自用户的输入字符串并将它们转换为包含这些字符串的列表。该函数有效,直到用户输入空字符串("")。如果用户输入"",那么该函数应该打印到目前为止的字符串列表。 我编写了代码,但每次运行它时我只得到空列表,我不知道如何解决它,因为它应该按计划工作。 这里有人能给我一些线索或告诉我问题是什么吗?

这是我的代码:

def string_from_user():
    string_from_user = input("enter1")
    while string_from_user != "":
        string_from_user = input("enter again")
        list1 = [string_from_user]
    if string_from_user != "":
        list1.append(string_from_user)
    else:
        print(list1)
    print(list1)

提前致谢!

6 个答案:

答案 0 :(得分:1)

此代码永远运行,因为您没有指定在输出列表时需要结束。

def strings_list():
    list1 = []                                  # initialises list1 as a list

    while True:                                 # repeats forever
        string_from_user = input("Input Word")  # takes input of string

        if not string_from_user:                # if string is empty
            for item in list1:                  # prints list line at a time
                print(item)
        else:
            list1.append(string_from_user)          # adds string to end of list

您的一些错误使用的函数名称与变量string_from_user()string_from_user

相同

同样list1 = [string_from_user]将列表重置为每个循环的输入

答案 1 :(得分:0)

def string_from_user():
  string_from_user = input("Please input a string: ")
  list1 = [string_from_user]
  while string_from_user != "":
    string_from_user = input("Input another string or input \"\" (emptystring) to output a list of your inputed strings:")
    list1.append(string_from_user)
  print(list1)

string_from_user()

测试here

答案 2 :(得分:0)

您将list1设置为[string_from_user]或空字符串。

相反,你只想在开头创建列表,然后在你去的时候追加它。

def string_from_user():
    list1 = []
    while string_from_user != "":
        string_from_user = input("enter again")
        list1.append(string_from_user)
    return list1

这是如何运作的:

  1. 初始化listlist1
  2. 在while循环内部,它将继续向用户询问字符串,直到用户输入空字符串。
  3. 如果他们这样做,while循环将结束,它将返回list1

答案 3 :(得分:0)

def string_from_user():
    st = input()
    ret = []
    while st:
        ret.append(st)
        st = input()
    return ret

没有必要检查st是否等于空字符串显式,因为任何空字符串都是 falsy ,所以只有{{ 1}}变量可以用作条件。

答案 4 :(得分:0)

您可以使用:

Function CopyDistinctFromRecordset(rs As Object, Target As Range)
    Dim list As Object
    Dim data
    Dim x As Long
    rs.MoveFirst
    data = rs.getRows
    Set list = CreateObject("System.Collections.ArrayList")

    For x = 0 To UBound(data, 2)
        If Not list.Contains(data(0, x)) Then list.Add data(0, x)
    Next

    Target.Resize(list.Count).Value = Application.Transpose(list.ToArray)

End Function

答案 5 :(得分:-1)

您正在尝试将string_from_user与""进行比较。这是一个空字符串。为了正确比较,你应该使用简单的字符串,例如'""'或\""" \"

def displayUserInput():
    user_input = None
    user_input_list = []
    while user_input != "":
        user_input = raw_input("Enter the list element ?")
        if user_input:
            user_input_list.append(user_input)
    return user_input_list