2017-11-11 45 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]解决方案。 –