如何访问for _ in range(5)循环中第1个位置的name变量值?
问题分析与解决
你的代码里name变量在每次循环中都会被新输入的值覆盖,最终它只保留最后一次输入的内容;而报错TypeError: 'int' object is not subscriptable,大概率是你某次输入的name被处理成了整数类型(比如误将代码写成name = int(input()),或者输入纯数字后做了类型转换)——整数无法通过下标访问。
要实现“访问第1个位置的name变量值”(即第一次输入的完整name),你需要把每次输入的name存储到列表里,而非每次覆盖单个变量:
修改后的代码
# 初始化空列表存储所有输入的name和score names = [] scores = [] for _ in range(5): name = input() names.append(name) # 将当前输入的name加入列表 score = float(input()) scores.append(score) # 可选:同步存储对应分数 # 访问第一次输入的name(Python列表下标从0开始) print(names[0])
额外说明
- 如果你是想获取某单个输入name的第一个字符(比如输入"Bob"取"B"),只要保证
name是字符串类型(原代码中input()默认返回字符串),直接用name[0]即可,但这和你要的“第1个位置的name变量值”不是同一概念。 - 若仍出现
int类型报错,检查代码里是否误将name转成了整数(比如name = int(input())),这种情况要去掉类型转换,保持name = input()即可。
内容的提问来源于stack exchange,提问作者Sudip Sojitra
相关产品推荐
相关产品推荐

