2017-06-17 22 views
1

我已經寫了一個python函數,它需要多個參數,我希望它從終端運行,但它不工作。我究竟做錯了什麼?在終端執行多個參數的python函數

counting.py腳本:

def count (a, b): 
    word = False 
    a = " " + a + " " 
    b = " " + b + " " 

    result = 0 

    for i in range (len (a)-1): 
     if a[i] == " " and a[i+1] != " ": 
      word = True 
      result += 1 
     else: 
      word = False 

    for i in range (len (b)-1): 
     if b[i] == " " and b[i+1] != " ": 
      word = True 
      result += 1 
     else: 
      word = False 


    return result 


if __name__ == "__main__": 
    count (a, b) 

終端命令:

python counting.py count "hello world" "let's check you out" 
+1

如何的Python應該知道'數(A,B)'是指那些程序參數? –

+0

@WillemVanOnsem這是我想明白的。如何告訴python這個 –

+0

https://docs.python.org/3/library/sys.html#sys.argv – spectras

回答

0

abcount的參數。你不能在這個範圍之外使用它們。你也可以使用sys.argv訪問命令行參數:

from sys import argv 
if __name__ == "__main__": 
    print(count (argv[1], argv[2])) 
+0

謝謝,@mureinik !!! –

1

期運用sys模型, 添加該代碼,sys.argv中第一個參數是這個文件名

import sys 
if __name__ == "__main__": 
    a = sys.argv[1] 
    b = sys.argv[2] 
    count(a,b) 

終端命令: python counting.py "hello word" "let's check you out" 例如:

import sys 
def count(s1, s2): 
    print s1 + s2 

print sys.argv 
count(sys.argv[1], sys.argv[2]) 

out:

蟒蛇zzzzzzz.py 「你好」 「字」

['zzzzzzz.py', 'hello', 'word'] 
helloword