Python TypeError:列表索引必须是整数或片,而不是str“convert the characterter”

Python TypeError:列表索引必须是整数或片,而不是str“convert the characterter”,python,string,list,type-conversion,int,Python,String,List,Type Conversion,Int,想要: 输入2 想要: 1 2 3 4 .... 20 但结果是: TypeError:列表索引必须是整数或片,而不是str 在Python3中,输入返回一个字符串。然而,在Python2中,input返回您要查找的类型,即整数。因此,您需要将输入函数强制转换为int,因为您显然是在尝试按索引在列表中赋值 1 - 3 4...20 做: inputNum3=intinput 若要获取整数,您不能以字符串作为索引访问

想要:

输入2

想要:

1       2
     3
     4
     .... 20
但结果是:

TypeError:列表索引必须是整数或片,而不是str


在Python3中,输入返回一个字符串。然而,在Python2中,input返回您要查找的类型,即整数。因此,您需要将输入函数强制转换为int,因为您显然是在尝试按索引在列表中赋值

1
      -
      3
      4...20
做:

inputNum3=intinput

若要获取整数,您不能以字符串作为索引访问列表

变量名应以小写字母开头。通常也是蛇形,所有小写字母用下划线分隔:

Number = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]    
for n in range(0, 20):
   print(Number[n]+1\n)

InputNum3 = int(input())
Number[InputNum3] = ''.join(str('-'))
您不需要。在此处加入,因为您希望只包含一个字符

您也可以这样填写您的号码列表:

数字=[x代表范围20中的x]

这被称为一个

最后,如果要打印完整列表,只需执行printnumber,无需for循环

如果要打印从索引x到y的所有列表元素,可以使用列表切片:

例如,数字[3:15]

有关切片的更多示例,请参见

number = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
input_num = int(input())
number[input_num] = "-"
输入函数接受值作为字符串

input返回一个str,您需要将其强制转换为int才能使索引有效。对于我来说,它会引发SyntaxError。
number = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
input_num = int(input())
number[input_num] = "-"
Number = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]    
for n in range(0, 20):
      print(Number[n]+1\n)
>>InputNum3 = int(input())
Number[InputNum3] = ''.join(str('-'))