编码
def main(bar):
bar = str(bar)
print bar
main(sys.argv[1:])
印刷
['bar']
, 而不仅仅是
bar
. 我应该怎么做才能使输入参数完全是字符串?谢谢。(Python 2.5.2)
编码
def main(bar):
bar = str(bar)
print bar
main(sys.argv[1:])
印刷
['bar']
, 而不仅仅是
bar
. 我应该怎么做才能使输入参数完全是字符串?谢谢。(Python 2.5.2)
通过传递 sys.argv[1:] 你传递了第一个参数的范围以及后面的每个参数。您可以独立执行以下任何操作以获得所需的结果
# Target the 1 element when passing in
main(sys.argv[1])
# or this inside of your function
bar = str(bar[0])
[1:]
语法是一种slice;冒号是告诉我们情况的关键句法元素。它不是为您提供单个元素,而是为您提供由您指定的索引指示的列表部分。例如,
>>> x = [0,1,2,3,4]
>>> x[1:3]
[1, 2]
这是从索引 1 到索引 3 的列表部分。
您的代码更像这样:
>>> x[1:]
[1, 2, 3, 4]
它采用索引 1 处的元素和后面的每个索引。因为我们省略了结束索引,所以它假设我们希望所有内容都到列表的末尾。我们还可以使用负索引从列表末尾倒数:
>>> x[1:-2]
[1, 2]
如果要将所有命令行参数打印为不带括号的单个字符串,可以使用字符串的.join()
方法:
def main(bar):
bar = ' '.join(bar)
print bar
main(sys.argv[1:])
这将把列表中的所有元素bar
用空格分隔,然后将该字符串放回变量bar
中。
如果只有一个参数,这将打印
bar
但如果有多个参数,它会打印
bar foo