2017-11-11 43 views
0

嘗試遍歷命令行參數以檢查字符串中的每個字符是否都是字母表。通過argv(Python)循環時TypeError

類型錯誤:字符串索引必須是整數

import sys 

k = sys.argv[1] 

if len(sys.argv) != 2: 
    print("Error.") 
    return 1 
else: 
    for i in k: 
     if k[i].isalpha() == False: 
      return 1 
      print("Error.") 
+0

你沒有循環'argv'。你正在循環argv中的第一項中的字符,這可能是你正在嘗試做的事情,但目前還不清楚。您可以通過執行''abc'.isalpha()'來檢查字符串是否是字母。你不必單獨檢查每個字符。 – 2017-11-11 02:25:17

回答

2

更改,如果else語句內聲明 if i.isalpha() == False:

這是因爲,通過k的值循環迭代和設置變量i等於k [i]

如果您希望將for循環設置爲索引,則for循環必須如此讀取:

for i in range(k): 
+0

這是有道理的。謝謝。我沒有意識到Python的意思是「爲了IN ___」,因此已經遍歷索引,而不是在C中指定for循環,並且必須使用變量[i]解決方案。 –