【问题标题】:How to remove apostrophes and parathenses in output?如何删除输出中的撇号和括号?
【发布时间】:2016-08-18 02:34:02
【问题描述】:
a=str(input("Enter string: "))
b=str(input("Enter another: "))

def switch(x, y): 
    x, y = y, x
    return x, y

print (switch(a, b))

输出例如:('there', 'hello') 我想删除括号和 ''

【问题讨论】:

  • 不打印列表,分别打印每个元素。

标签: python python-3.x output


【解决方案1】:

假设您想保持函数的输出相同(元组),您可以使用 join 打印以空格分隔的元组:

a = input("Enter string: ")
b = input("Enter another: ")

def switch(x, y):
    return y, x

print(' '.join(switch(a, b)))

小记:我将方法更改为return y, x,因为在这种情况下似乎不需要方法中的其他两行:)

【讨论】:

  • 现在说得通了。但是 ' '.join 函数是如何去除字符的呢?
  • 啊 - 它实际上并没有删除任何字符。只是当你只是打印一个元组本身时,它会添加括号和引号以提供字符串元组的字符串表示。列表也是如此……如果您打印一个初始化为['hello', 'world'] 的Python 列表,它将打印为['hello', 'world'],并带有引号和括号以指示它是一个列表(而不仅仅是列表中的字符串)。
【解决方案2】:

switch 的返回值是 2 个项目(一对)的元组,它作为单个参数传递给 print 函数。并且print 将其每个参数转换为带有隐式str 的字符串,而('', '') 来自该元组的字符串表示。

您想要的是分别传递对中的每个项目。

由于这是 Python 3,您只需添加一个字符:

print(*switch(a, b))

* 表示“将以下可迭代的元素作为单独的位置参数传递”,因此它是(在这种情况下)的简写

value = switch(a, b)
print(value[0], value[1])

打印通常打印由单个空格分隔的值。如果你想要另一个分隔符,例如,,你可以使用sep关键字参数:

print(*switch(a, b), sep=', ')

最后,您的示例中的str() 似乎没有必要。

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多