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