我刚刚发现,在我的课程中,讲师不希望我们使用“导入”功能,因为它显然“过于先进,无法满足学生的需求。”
弄清楚我“被允许”使用的内容,我想出了这个:
#!/usr/bin/python
moo = raw_input ('moo ')
string = ''.join(moo)
outp = string.split()
for word in outp:
print word
给了我
$ ./pecho
moo hello world
hello
world
如何摆弄我在这里将“hello world”输出放在一行?
原帖:
我需要创建一个python文件,“只是打印自己的参数,每个参数由一个空格分隔。” 例如,以下命令将显示输出:
$ pecho first and then another one
first and then another one
$
这就像是
#!/usr/bin/python
moo = raw_input ('moo ')
print moo
? 如果是这样的话,我怎么做才能使它在输出中的单词之间只打印一个空格,而不管输入中有多少个制表符/空格?
答案 0 :(得分:3)
以下是修订后问题的答案:
moo = raw_input ('moo ')
print ' '.join(moo.split())
从parens的内部开始,我们首先获取输入moo
并根据空白将其拆分为多个部分。这给了我们一个可迭代的列表,类似于旧答案中的sys.argv
。
然后,我使用join和单个空格加入该列表。然后打印整个交易。
为了更好地理解这一点,这里是相同的,但使用更多的行:
moo = raw_input('moo ')
temp_list = moo.split()
print ' '.join(temp_list)
尝试打印temp_list,看看它是什么样的。
只需将其添加为最后一行,即可查看列表的打印方式:
print temp_list
你可能想要这个:
import sys
if len(sys.argv) > 1:
for arg in sys.argv[1:]:
print arg,
sys.argv是命令行参数的列表。第一个是脚本的名称。
list是一种可迭代类型,因此您可以使用for循环来迭代它。我拆分列表,以便从第二项开始。
我在打印行的末尾使用逗号告诉python不要打印换行符。在python 3中有不同的方法。
在python 3中,最后一行是:
print(arg, end=" ")
要使用Dan D的示例,您可以这样做:
import sys
if len(sys.argv) > 1:
print ' '.join(sys.argv[1:])
您仍然可以进行测试,以确保您的脚本名称至少多了一个arg。它joins将可迭代列表与每个项目之间的空格放在一起。