如何在字符串周围没有引号的情况下输出列表?

问题描述:

我想设置一个块只接受列表中的输入,但首先它要求在输入函数中的输入,但我似乎无法摆脱列表中的字符串周围的引号。下面是一些示例代码:如何在字符串周围没有引号的情况下输出列表?

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

我认为这会为你做的好:

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

作品!谢谢您的帮助 ! – Whud

使用.join(...)这是将字符串连接的可迭代的推荐方式:

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

附:我不明白为什么在return声明后需要break

+0

作品!谢谢您的帮助 !此外,休息时间还没有完成,我之前让这个功能块忘了删除它。 – Whud