2016-09-15 63 views
0

我想設置一個塊只接受列表中的輸入,但首先它要求在輸入函數中的輸入,但我似乎無法擺脫列表中的字符串周圍的引號。下面是一些示例代碼:如何在字符串周圍沒有引號的情況下輸出列表?

def Sinput(acceptable): 
    while True: 
     acceptable = [str(i) for i in acceptable] 
     a = input('Enter'+str(acceptable[:-1]).strip('[]')+' or '+str(acceptable[-1]+': ')) 
     if a in acceptable: 
      return a 
      break 

a = Sinput([ 1, 2.01, '\'cat\'', 'dog']) 
print('you entred:', a) 

輸入問:Enter'1', '2.01', "'cat'" or dog:我想它問:Enter 1, 2.01, 'cat' or dog:

使用.replace('\'', '')不會起作用,因爲輸入「貓」正確地將不再顯示

感謝您的幫助,我只做了大約一週的編碼。

+0

下面的人回答了這個問題,但你並不需要包括迴歸後的休息。 – tatatat0

+0

@ tatatat0謝謝,這只是從我做它功能之前剩下的。只是忘了刪除它。 – Whud

回答

2

我認爲這會爲你做的好:

a = input('Enter {} or {}'.format(' ,'.join(acceptable[:-1]), acceptable[-1])) 
+0

作品!謝謝您的幫助 ! – Whud

2

使用.join(...)這是將字符串連接的可迭代的推薦方式:

a = input('Enter'+ ' ,'.join(acceptable[:-1]) + ...) 
#     ^^^^^^^^^ 

附:我不明白爲什麼在return聲明後需要break

+0

作品!謝謝您的幫助 !此外,休息時間還沒有完成,我之前讓這個功能塊忘了刪除它。 – Whud

相關問題