如何在字符串周围没有引号的情况下输出列表?
问题描述:
我想设置一个块只接受列表中的输入,但首先它要求在输入函数中的输入,但我似乎无法摆脱列表中的字符串周围的引号。下面是一些示例代码:如何在字符串周围没有引号的情况下输出列表?
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('\'', '')
不会起作用,因为输入“猫”正确地将不再显示
感谢您的帮助,我只做了大约一周的编码。
答
我认为这会为你做的好:
a = input('Enter {} or {}'.format(' ,'.join(acceptable[:-1]), acceptable[-1]))
+0
作品!谢谢您的帮助 ! – Whud
答
使用.join(...)
这是将字符串连接的可迭代的推荐方式:
a = input('Enter'+ ' ,'.join(acceptable[:-1]) + ...)
# ^^^^^^^^^
附:我不明白为什么在return
声明后需要break
。
+0
作品!谢谢您的帮助 !此外,休息时间还没有完成,我之前让这个功能块忘了删除它。 – Whud
下面的人回答了这个问题,但你并不需要包括回归后的休息。 – tatatat0
@ tatatat0谢谢,这只是从我做它功能之前剩下的。只是忘了删除它。 – Whud