在argv(Python)中循环时出现TypeError
尝试遍历命令行参数以检查字符串中的每个字符是否为字母表 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语句中
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]解决方案。