报错TypeError: 'str' object cannot be interpreted as an integer,批量创建学生姓名失败求助
解决你的学生姓名录入代码错误
咱们先说说报错的核心原因:你用input()获取的学生数量n默认是字符串类型,但range()函数要求必须传入整数参数,直接把字符串丢给range自然会触发TypeError: 'str' object cannot be interpreted as an integer这个错误。
另外你的代码还有几个小细节需要调整:
- Python是大小写敏感的,循环变量
I、大写的Print都不符合规范,得改成小写的i和print - 每次循环里的
stud_name会被新输入覆盖,要是想留存所有学生姓名,最好用列表来存储
给你修正后的完整代码:
# 将输入的数字字符串转为整数类型 n = int(input("enter number of students: ")) # 初始化列表用于存储所有学生姓名 student_names = [] for i in range(n): name = input("enter the name of student: ") student_names.append(name) print(name) # 可选:打印所有录入的学生姓名 print("All student names:", student_names)
关键改动说明:
int(input(...)):把用户输入的数字字符串转换成整数,让range(n)能正常执行循环- 新增
student_names列表,避免每次输入的姓名被覆盖,方便后续复用数据 - 统一了变量名和函数名的大小写,符合Python的代码规范
这样运行代码就不会报错啦,还能完整保存所有学生的姓名~
内容的提问来源于stack exchange,提问作者Shuhana
相关产品推荐
相关产品推荐

