gpt4 book ai didi

python - 类型错误 : slice indices must be integers or None or have an __index__ method (Book example not working)

转载 作者:行者123 更新时间:2023-12-04 10:07:15 24 4
gpt4 key购买 nike

最近我拿起了我的工作经验人员给我的一本书来学习 Pygame。问题是它是从 2007 年开始的,这本书使用了 python 2.4 和 Pygame 1.7.1,所以我遇到了一些我能够自己解决的问题,但是因为我现在进入了 Pygame 的章节,这对我来说是全新的领域使用比我习惯的稍微复杂的 python 编码。我以前的经验是我在学校所做的以及我与我的工作经验人员所做的事情,所以我对编程仍然相当陌生。

我遇到的错误是这样的:

Traceback (most recent call last):
File "D:/python_repository/Pygame_projects_book/Message_Queue.py", line 17, in <module>
event_text = event_text[-SCREEN_SIZE[1] / font_height:]
TypeError: slice indices must be integers or None or have an __index__ method

这是造成问题的代码:
event = pygame.event.wait()
event_text.append(str(event))
event_text = event_text[-SCREEN_SIZE[1] / font_height:]

为简单起见,这是书中的完整 list :
import pygame
from pygame.locals import *
from sys import exit

pygame.init()
SCREEN_SIZE = (640, 480)
screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32)

font = pygame.font.SysFont("arial", 16);
font_height = font.get_linesize()
event_text = []

while True:

event = pygame.event.wait()
event_text.append(str(event))
event_text = event_text[-SCREEN_SIZE[1] / font_height:]

if event.type == QUIT:
exit()

screen.fill((255, 255, 255))

y = SCREEN_SIZE[1] - font_height
for text in reversed(event_text):
screen.blit(font.render(text, True, (0, 0, 0)), (0, y))
y -= font_height

pygame.display.update()


由于我仍在学习,我不确定如何解决此错误。任何帮助都感谢可能的解释导致问题的原因,以便我可以从中学习。谢谢你。

最佳答案

更换线路

event_text = event_text[-SCREEN_SIZE[1] / font_height:]


event_text = event_text[-SCREEN_SIZE[1] // font_height:]

使用 floor division ,确保除法返回整数而不是浮点数。

关于python - 类型错误 : slice indices must be integers or None or have an __index__ method (Book example not working),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61525251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com