Python:TypeError:';int';对象不可下标,索引器:字符串索引超出范围
如何标记/分离函数中传递的输入? 例如,如果Python:TypeError:';int';对象不可下标,索引器:字符串索引超出范围,python,Python,如何标记/分离函数中传递的输入? 例如,如果12356作为输入传递,我想访问,比如说第三个符号,即3,我该怎么办? 我在函数中尝试了以下代码,但出现错误: print(s[2]) IndexError: 'int' object is not subscriptable 代码: 在另一个程序中,当我执行相同操作时,我得到一个错误: "IndexError: string index out of range" for the instruction print(s[2]) 谢谢主要问题在于以
12356
作为输入传递,我想访问,比如说第三个符号,即3
,我该怎么办?
我在函数中尝试了以下代码,但出现错误:
print(s[2]) IndexError: 'int' object is not subscriptable
代码:
在另一个程序中,当我执行相同操作时,我得到一个错误:
"IndexError: string index out of range" for the instruction print(s[2])
谢谢主要问题在于以下
功能
def TestComponents(months, days, years, seps):
print("\nTest Months FSA")
# print(months.m[0][1])
for input in ["", "0", "1", "9", "10", "11", "12", "13"]:
print("'%s'\t%s" % (input, NDRecognize(input, months)))
print("\nTest Days FSA")
for input in ["", "0", "1", "9", "10", "11", "21", "31", "32"]:
print("'%s'\t%s" % (input, NDRecognize(input, days)))
print("\nTest Years FSA")
for input in ["", "1899", "1900", "1901", "1999", "2000", "2001", "2099", "2100"]:
print("'%s'\t%s" % (input, NDRecognize(input, years)))
print("\nTest Separators FSA")
for input in ["", ",", " ", "-", "/", "//", ":"]:
print("'%s'\t%s" % (input, NDRecognize(input, seps)))
def TestDates(dates):
print("\nTest Date Expressions FSA")
for input in ["", "12 31 2000", "12/31/2000", "12-31-2000", "12:31:2000",
"1 2 2000", "1/2/2000", "1-2-2000", "1:2:2000",
"00-31-2000", "12-00-2000", "12-31-0000",
"12-32-1987", "13-31-1987", "12-31-2150"]:
print("'%s'\t%s" % (input, NDRecognize(input, dates)))
您正在对这种类型的列表执行一个for
循环[“”、“0”、“1”、“9”、“10”、“11”、“12”、“13”]
,该列表在第一个元素中包含1
空字符串。因此,在第一次迭代中,将一个空值传递给NDRecognize(input,dates))
函数,进入每个for
循环。这就是为什么NDRecognize(输入,日期))
函数出错的原因
我希望你明白我说的话。谢谢。主要问题在于以下功能
def TestComponents(months, days, years, seps):
print("\nTest Months FSA")
# print(months.m[0][1])
for input in ["", "0", "1", "9", "10", "11", "12", "13"]:
print("'%s'\t%s" % (input, NDRecognize(input, months)))
print("\nTest Days FSA")
for input in ["", "0", "1", "9", "10", "11", "21", "31", "32"]:
print("'%s'\t%s" % (input, NDRecognize(input, days)))
print("\nTest Years FSA")
for input in ["", "1899", "1900", "1901", "1999", "2000", "2001", "2099", "2100"]:
print("'%s'\t%s" % (input, NDRecognize(input, years)))
print("\nTest Separators FSA")
for input in ["", ",", " ", "-", "/", "//", ":"]:
print("'%s'\t%s" % (input, NDRecognize(input, seps)))
def TestDates(dates):
print("\nTest Date Expressions FSA")
for input in ["", "12 31 2000", "12/31/2000", "12-31-2000", "12:31:2000",
"1 2 2000", "1/2/2000", "1-2-2000", "1:2:2000",
"00-31-2000", "12-00-2000", "12-31-0000",
"12-32-1987", "13-31-1987", "12-31-2150"]:
print("'%s'\t%s" % (input, NDRecognize(input, dates)))
您正在对这种类型的列表执行一个for
循环[“”、“0”、“1”、“9”、“10”、“11”、“12”、“13”]
,该列表在第一个元素中包含1
空字符串。因此,在第一次迭代中,将一个空值传递给NDRecognize(input,dates))
函数,进入每个for
循环。这就是为什么NDRecognize(输入,日期))
函数出错的原因
我希望你明白我说的话。谢谢。您正在向您的方法传递一个int
,而不是str
。可以将其作为字符串传递“123456”
,也可以将其转换为您的方法:s=str(input)
谢谢您的回答。在这个程序中,即使在将输入转换为字符串之后,我也会遇到错误:“IndexError:字符串索引超出范围”。请看第119行:传递给该方法的数据的确切值是多少?在尝试访问它之前,您是否已尝试打印出来?实际上,您可以访问该索引处的字符串?是的,当我仅打印s(print(s))时,输出是正确的。但是,当我打印s[2](print(s[2])时,出现了一个错误“indexer-ror:string-index-out-range”但是s
是什么?您正在向方法传递一个int
,而不是str
。可以将其作为字符串传递“123456”
,也可以将其转换为您的方法:s=str(input)
谢谢您的回答。在这个程序中,即使在将输入转换为字符串之后,我也会遇到错误:“IndexError:字符串索引超出范围”。请看第119行:传递给该方法的数据的确切值是多少?在尝试访问它之前,您是否已尝试打印出来?实际上,您可以访问该索引处的字符串?是的,当我仅打印s(print(s))时,输出是正确的。但是,当我打印s[2](print(s[2])时,出现了一个错误“indexer-ror:string-index-out-range”但是s
是什么呢?