Синтаксическая ошибка приращения, даже если она должна быть правильной

Это может быть связано с некоторой глупой ошибкой, которую я просто не могу определить, но Python возвращает синтаксическую ошибку, когда я запускаю следующий код

# Imports
import pygame
import os

# Startup
pygame.init()

# Screen
size = (500, 500)
screen = pygame.display.set_mode(size, pygame.NOFRAME)
pygame.display.set_caption = ("Swinger")
pygame.mouse.set_visible(False)
clock = pygame.time.Clock()
# -- Assign Functions --
# -- Assign Classes --
# -- Assign Variables --
#Sets the color of pure white to a variable to be called
WHITE    = (255, 255, 255)
#Sets the player to an image loaded from os path Swinger
Player = pygame.image.load(os.path.join("Swinger", "player.png"))
Pointer = pygame.image.load(os.path.join("Swinger", "pointer.png"))
#Sets a variable to know whether the scrpt has run once or not
FirstRun = 0
#Sets the variables to allow you to control movement
#Y axis movement Speed
MoveYSpeed = 0
#X axis movement speed
MoveXSpeed = 0
#Assigns the values later used to call the drawing
#of the player
PlayerPos = [255 += MoveXSpeed, 255 += MoveYSpeed]
#Assigns The first value of PlayerPos as a X axis value
PlayerPosX = PlayerPos[0]
#Assigns the second value of PlayerPos as a y axis value
PlayerPosY = PlayerPos[1]

это дает мне синтаксическую ошибку в строке 31 первого оператора приращения, говоря, что символ равенства равен:

Traceback (most recent call last):
  File "...", line 31
    PlayerPos = [255 += MoveXSpeed, 255 += MoveYSpeed]
                      ^
SyntaxError: invalid syntax

Я только начинаю писать код, поэтому большая часть кода может не соответствовать нужному формату, и я не скопировал весь код, потому что думал, что это может быть неуместно, учитывая, что я получаю сообщение об ошибке до того, как достигну любого из другой код.

1 ответ

Решение

PlayerPos = [255 += MoveXSpeed, 255 += MoveYSpeed] неверный синтаксис Python, нет. Что ты хотел сделать с этим выражением? += это не оператор, это утверждение (как = назначение, или return или же if test: <block>), и вы не можете помещать утверждения внутри других утверждений.

Вы хотели использовать + оператор сложения возможно?

PlayerPos = [255 + MoveXSpeed, 255 + MoveYSpeed]

создаст список с этими двумя суммами в качестве начальных значений.

Другие вопросы по тегам