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
相关产品推荐
相关产品推荐

