所以。
import pygame
import time
import random
import sys
itworks = True
pygame.init()
screen = pygame.display.set_mode((600, 600))
bootpng = pygame.image.load('bootimage.png')
bootpng = pygame.transform.scale(bootpng, (600, 600))
backgroundmenu = pygame.image.load('Menu_background.png')
backgroundmenu = pygame.transform.scale(backgroundmenu, ((600, 600))
button = pygame.image.load('technical_information_button')
button = pygame.transform.scale(infobut, ((130, 80))
screen.blit(bootpng, (0, 0))
time.sleep(3)
while itworks == True:
screen.blit(backgroundmenu, (0, 0))
screen.blit(tekbutton, (470, 520))
for event in pygame.event.get():
if ecent.type == pygame.QUIT:
itworks = False
# if event.type == pygame.MOUSEBUTTONDOWN:
# Set the x, y postions of the mouse click
#x, y = event.pos
#if ball.get_rect().collidepoint(x, y):
pygame.display.flip()
pygame.quit()
是我的代码。由于某些原因,Buuut .. python在变量按钮的第15行显示“无效语法” *。我真的不知道该怎么办,我做了很多尝试,所以我希望可以从这里获得帮助:D
答案 0 :(得分:2)
您需要删除一个额外的括号。
替换:button = pygame.transform.scale(infobut, (130, 80))
具有:while itworks == True
在Python中,应该始终有一个左括号和右括号。
编辑:
只需添加一下,我强烈建议您将while itworks is True
替换为if
。可以在此处查看更多信息:Boolean identity == True vs is True
基本上,由于相等性未比较引用,因此{{1}}语句在某些情况下可能无法提供预期的结果。这只是做事的“ pythonic”方式。
答案 1 :(得分:0)
再详细一点。
问题是您在button = pygame.transform.scale(infobut, ((130, 80))
行中有多余的括号。
得到Syntax Error
的原因是python认为您要键入variable=(variable_declared="in parenthesis")
,这是一个语法错误。
如果您在button = pygame.transform.scale(infobut, ((130, 80))
之后注释了所有代码,则会得到更具解释性的错误:
import pygame
import time
import random
import sys
itworks = True
pygame.init()
screen = pygame.display.set_mode((600, 600))
bootpng = pygame.image.load('bootimage.png')
bootpng = pygame.transform.scale(bootpng, (600, 600))
backgroundmenu = pygame.image.load('Menu_background.png')
backgroundmenu = pygame.transform.scale(backgroundmenu, ((600, 600))
##button = pygame.image.load('technical_information_button')
##button = pygame.transform.scale(infobut, ((130, 80))
##screen.blit(bootpng, (0, 0))
##time.sleep(3)
##
##while itworks == True:
## screen.blit(backgroundmenu, (0, 0))
## screen.blit(tekbutton, (470, 520))
## for event in pygame.event.get():
## if ecent.type == pygame.QUIT:
## itworks = False
##
## # if event.type == pygame.MOUSEBUTTONDOWN:
## # Set the x, y postions of the mouse click
## #x, y = event.pos
## #if ball.get_rect().collidepoint(x, y):
##
## pygame.display.flip()
##
##pygame.quit()
现在,代码将引发错误SyntaxError: unexpected EOF while parsing
,该错误直接由多余的括号引起。
也就是说,我实际上建议您将while itworks == True:
更改为while itworks:
(与@UltraGold的回答相反)。
根据this post和PEP8(Python的样式指南),最“ Pythonic”的方法是while itworks
与while itworks == True:
相比,实际上进一步劝阻 while itworks is True
,因为这实际上是另一种测试,可能会导致意外错误(@UltraGold试图解决的问题)。