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

时间:2016-09-15 15:14:27

标签: python python-3.x

我正在尝试设置一个块来接受列表中的输入,但首先它要求输入函数中的输入但我似乎无法摆脱列表中字符串的引号。以下是一些示例代码:

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('\'', '')将无效,因为输入'cat'将无法再正确显示

感谢您的帮助,我只做了大约一周的编码。

2 个答案:

答案 0 :(得分:2)

使用.join(...)这是加入可迭代字符串的推荐方法:

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

P.S。在break声明之后,我不明白为什么你需要return

答案 1 :(得分:2)

我认为这对你有好处:

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