You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取输入文件做数值运算报TypeError的正确解决方法

问题根因

代码存在两处核心错误:

  1. 总人数t的读取逻辑错误:map(int, inputfile.readline().split()) 返回的是map类型的可迭代对象,不是单个整数。第一行读取r、s时,是通过两个变量自动解包了map返回的内容才拿到整数值;第二行只有一个整数输入,没有做解包/取值操作,导致t是map类型,无法和整数类型的seats_available做大小比较,直接触发你看到的类型报错。
  2. 输出写入逻辑错误:sit和stand都是整数类型,无法直接和字符串做拼接运算,且两个输出值之间需要加空格分隔,否则不符合题目要求的输出格式,运行时还会触发类型错误。
修正后可运行代码
inputfile = open("sitin.txt", "r")
outputfile = open("sitout.txt", "w")

# 读取行列数
r, s = map(int, inputfile.readline().split())
# 读取总人数
t = int(inputfile.readline().strip())

seats_available = r * s

if t > seats_available:
    sit = seats_available
    stand = t - seats_available
else:
    sit = t
    stand = 0

# 格式化结果写入输出文件
outputfile.write(f"{sit} {stand}\n")

outputfile.close()
inputfile.close()
关键修正说明
  • 读取t时直接用int()转换整行输入内容,确保拿到整数类型值,支持后续的大小比较、减法等数值运算。如果习惯沿用map写法,也可以写成 t, = map(int, inputfile.readline().split()),通过末尾的逗号自动解包map返回的单元素迭代器,效果完全一致。
  • 写入输出时通过f-string把整数转成字符串格式,两个结果中间加空格分隔,既符合题目输出要求,也不会触发类型拼接错误。

内容的提问来源于stack exchange,提问作者Akkirotru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 02:01:24