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

Python TypeError报错:float对象无法被解释为整数求助

解决蛇游戏中的TypeError: 'float' object cannot be interpreted as an integer问题

问题原因

curses库的addch()方法要求传入整数类型的坐标参数,但你代码中使用普通除法/计算蛇身和食物的坐标,得到的是浮点数,触发了类型错误。

修复方案

使用Python的**整数除法运算符//**代替普通除法/,确保计算出的坐标为整数类型。

修改后的代码

s = curses.initscr()
curses.curs_set(0)
sh, sw = s.getmaxyx()
w = curses.newwin(sh, sw, 0, 0)
w.keypad(1)
w.timeout(100)

snk_x = sw//4  # 替换为整数除法
snk_y = sh//2  # 替换为整数除法
snake = [
    [snk_y, snk_x],
    [snk_y, snk_x-1],
    [snk_y, snk_x-2]
]

food = [sh//2, sw//2]  # 替换为整数除法
w.addch(food[0], food[1], curses.ACS_PI)

补充说明

在Python中:

  • / 执行浮点除法,无论是否能整除都会返回浮点数(比如4/2结果是2.0)
  • // 执行整数除法,会对结果向下取整,返回整数类型(比如4//2结果是2)

这样修改后,传入addch()的坐标都是整数,就能解决这个类型错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:16:04