为什么无法操作[input()]生成的列表?该如何实现对应操作?
问题原因
- 索引越界:
[input()]的写法只会生成长度为1的列表,Python列表索引从0开始计数,list[1]对应的是列表第二个元素,不存在,调用时会直接抛出IndexError异常。 - 类型错误:
input()函数默认返回字符串类型,就算你输入的是数字,得到的也是"1"、"2"这类字符串格式,无法直接执行减法运算,就算列表长度足够,也会抛出TypeError异常。
额外说明:不要使用list作为变量名,list是Python内置的列表构造方法,直接用作变量名会覆盖原生方法,后续需要调用list()时会出现异常。
解决方法
如果需要从输入生成可做数值运算的列表,可按如下场景选择实现方式:
- 批量输入多个数字的场景(输入时用空格分隔)
代码示例:
# 读取输入后按空格拆分,批量转为int类型存入列表 num_list = list(map(int, input().split())) # 先判断列表长度是否满足运算要求,避免索引越界 if len(num_list) >= 2: A = num_list[1] - num_list[0] print(A) else: print("请至少输入2个数字")
- 逐个输入数字的场景
代码示例:
num_list = [] # 示例:录入5个数字 for _ in range(5): # 读取输入后转为int类型再存入列表 num = int(input("请输入数字:")) num_list.append(num) A = num_list[1] - num_list[0] print(A)
内容的提问来源于stack exchange,提问作者Javanese Python
相关产品推荐
相关产品推荐

