Skip to main content
 首页 » 编程设计

Python 原始输入()

2025年05月04日17zhengyun_ustc

在文档中,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,该字符串被拆分为多个字符。然后你会得到与那里有多少字符(减去一个)一样多的分隔符。