2017-06-19 62 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