在文档中,raw_input() 从输入中读取一行,将其转换为一个字符串(去除尾随的换行符),然后返回它。
有了那张纸条,
a = 'testing: '
sep = '-'
c = raw_input('give me some args: ') <--- giving 'a b c d'
def wrap( a, sep, *c):
print a + sep.join(c)
wrap(a, sep, c)
str = 'a b c d'
print sep.join(str)
他们应该都打印出同样的东西但是...
print a + sep.join(c) 给出testing: a b c d
print sep.join(str) 给出 a- -b- -c- -d
为什么 sep.join() 在 wrap 函数中不起作用?
编辑 从 *c 更改为 c 使输出相同,但这让我有些困惑,因为我认为 *c 解压了 args 但是当我打印 c 时,它给出了 ms ('a b c d',) 与字符串 'a b c d' 所以在从某种意义上说,它是将它们组合成一个与拆包相反的元组实体?
或者...它不解压字符串而只解压列表?
请您参考如下方法:
在您的函数中,c 是一个元素的元组,因为拼音 (*),因此从不使用分隔符。 在主程序中,您在一个字符串上调用 join,该字符串被拆分为多个字符。然后你会得到与那里有多少字符(减去一个)一样多的分隔符。
