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])
如果你要打印所有命令行參數去掉括號一個字符串以下的,你可以使用一個字符串的.join()
方法:
def main(bar):
bar = ' '.join(bar)
print bar
main(sys.argv[1:])
這將加入列表的所有元素bar
用空格隔開,然後將這個字符串轉換變量bar
。
如果只有一個參數,這將打印
bar
但如果有多個參數,它會打印
bar foo
的[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]