2017-06-19 64 views
0

我想将用户输入与':'冒号之间。连接用户输入?

我的剧本是通过用户输入接收选项,我想存储它喜欢:

Red:yellow:blue

我创建了一个循环来读取用户输入,但不知道如何保存它。

while True: 
    color = input("please enter Color of your choice(To exit press No): ") 
    if color == 'No': 
     break 
    color += color 
print ("colors ", color) 
+1

的[正确的方式来写一行在Python到文件(可能的复制https://stackoverflow.com /问题/ 6159900 /正确的方法对写入线到文件中的Python) –

回答

3

一种简单的方法尽可能地接近您的代码,即在进入循环之前以一个名为颜色的空列表开始,并在输入时附加所有有效颜色。然后,当你完成后,你只需使用join方法来获取该列表并使用':'分隔符创建一个字符串。

colors = [] 
while True: 
    color = input("please enter Color of your choice(To exit press No): ") 
    if color == 'No': 
     break 
    else: 
     colors.append(color) 

colors = ':'.join(colors) 
print ("colors ", colors) 

演示:

please enter Color of your choice(To exit press No): red 
please enter Color of your choice(To exit press No): blue 
please enter Color of your choice(To exit press No): green 
please enter Color of your choice(To exit press No): orange 
please enter Color of your choice(To exit press No): No 
colors red:blue:green:orange 
0

您可以连接一个 ':' 每一个输入颜色后

while True: 
    color = input("please enter Color of your choice(To exit press No): ") 
    if color == 'No': 
     break 
    color += color 
    color += ':' 
print ("colors ", color) 
+0

我不认为会产生正确的输出。 – idjaw

+0

它将打印输入的最后一种颜色。 – newbie

0

你正在寻找str.join(),要使用像这样:":".join(colors)。阅读更多信息https://docs.python.org/2/library/stdtypes.html#str.join

+0

这需要赋予'join'一个迭代。虽然提供字符串将“工作”,但在这种情况下,它不是正确的迭代器。基于提供一个字符串,并调用连接,那么你将最终得到类似于:'r:e:d'。这不是所需的输出。 – idjaw

0

使用列表整洁:

colors = [] 
while True: 
    color = input("please enter Color of your choice(To exit press No): ") 
    if color in ('No'): 
     break 
    colors.append(color) 
print("colors ", ':'.join(colors)) 
+1

真的吗? :)我想你没有注意到在此之前几分钟发布的相同答案? – idjaw