在argv(Python)中循环时出现TypeError

在argv(Python)中循环时出现TypeError,python,argv,Python,Argv,尝试遍历命令行参数以检查字符串中的每个字符是否为字母表 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.") 将else语句中

尝试遍历命令行参数以检查字符串中的每个字符是否为字母表

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.")

将else语句中的if语句更改为
如果i.isalpha()==False:

这是因为for循环迭代k的值,并将变量i设置为等于k[i]

如果希望将for循环I设置为索引,则for循环必须如下所示:

for i in range(len(k)):

将else语句中的if语句更改为
如果i.isalpha()==False:

这是因为for循环迭代k的值,并将变量i设置为等于k[i]

如果希望将for循环I设置为索引,则for循环必须如下所示:

for i in range(len(k)):

您没有在
argv
中循环。您正在对
argv
中第一项中的字符进行循环,这可能是您正在尝试做的,但不清楚。您可以通过执行
'abc'.isalpha()
检查字符串是否按字母顺序排列;您不必逐个检查每个字符。您没有在
argv
中循环。您正在对
argv
中第一项中的字符进行循环,这可能是您正在尝试做的,但不清楚。您可以通过执行
'abc'.isalpha()
检查字符串是否按字母顺序排列;你不必逐个检查每个字符,这很有意义。非常感谢。我没有意识到Python的字面意思是“for I IN ___;”,因此已经在遍历索引,而不是在C中分配for循环,并且必须使用变量[I]解决方案。这是有意义的。非常感谢。我没有意识到Python的字面意思是“for I IN __;”,因此已经在遍历索引,而不是在C中,在C中分配for循环,并且必须使用变量[I]解决方案。