为什么它会忽略我在 for 循环中的继续?
Why does it ignore my continue in the for-loop?
import pygame
import player
play = player.player()
pygame.init()
time = pygame.time.Clock()
key = 0
move = ""
List =[]
pygame.display.set_mode((100, 100))
while True:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
time_down = pygame.time.get_ticks()
if event.key == pygame.K_LEFT:
move = "l"
if event.key == pygame.K_RIGHT:
move = "r"
if event.key == pygame.K_DOWN:
move = "d"
print('UNTEN')
if event.key == pygame.K_UP:
move = "u"
if event.key == pygame.K_ESCAPE:
break
else:
continue
key += 1
play.handlerevent(event)
if event.type == pygame.KEYUP:
time_elapsed = (pygame.time.get_ticks() - time_down) / 1000.0
print("Nummer: ", key, "Zeit: ", time_elapsed)
tmp = (move, key)
List.extend(tmp)
您好,我是新来的,想知道为什么我的 for 循环对 continue 没有反应。它进入 else 分支。但只是忽略了继续。
我怀疑你搞错了:continue
在不该执行的时候被执行了。
您需要使用 elif
作为您的条件序列。您的 else:
块仅与最后一个 if
条件相关联。因此,如果密钥是 K_LEFT
,它将进入 else:
块并继续,而不是执行循环的其余部分。
if event.key == pygame.K_LEFT:
move = "l"
elif event.key == pygame.K_RIGHT:
move = "r"
elif event.key == pygame.K_DOWN:
move = "d"
print('UNTEN')
elif event.key == pygame.K_UP:
move = "u"
elif event.key == pygame.K_ESCAPE:
break
else:
continue
这样,只有当 if
条件中的 none 条件成功时,才会执行 else:
块。
import pygame
import player
play = player.player()
pygame.init()
time = pygame.time.Clock()
key = 0
move = ""
List =[]
pygame.display.set_mode((100, 100))
while True:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
time_down = pygame.time.get_ticks()
if event.key == pygame.K_LEFT:
move = "l"
if event.key == pygame.K_RIGHT:
move = "r"
if event.key == pygame.K_DOWN:
move = "d"
print('UNTEN')
if event.key == pygame.K_UP:
move = "u"
if event.key == pygame.K_ESCAPE:
break
else:
continue
key += 1
play.handlerevent(event)
if event.type == pygame.KEYUP:
time_elapsed = (pygame.time.get_ticks() - time_down) / 1000.0
print("Nummer: ", key, "Zeit: ", time_elapsed)
tmp = (move, key)
List.extend(tmp)
您好,我是新来的,想知道为什么我的 for 循环对 continue 没有反应。它进入 else 分支。但只是忽略了继续。
我怀疑你搞错了:continue
在不该执行的时候被执行了。
您需要使用 elif
作为您的条件序列。您的 else:
块仅与最后一个 if
条件相关联。因此,如果密钥是 K_LEFT
,它将进入 else:
块并继续,而不是执行循环的其余部分。
if event.key == pygame.K_LEFT:
move = "l"
elif event.key == pygame.K_RIGHT:
move = "r"
elif event.key == pygame.K_DOWN:
move = "d"
print('UNTEN')
elif event.key == pygame.K_UP:
move = "u"
elif event.key == pygame.K_ESCAPE:
break
else:
continue
这样,只有当 if
条件中的 none 条件成功时,才会执行 else:
块。