功能没有得到所谓的
我有功能,检查得分,将(我还没有完成),如果分数击中给出评分提高水平,我的功能:功能没有得到所谓的
def levels(Score):
if score >= 100:
enemies = 6
velocity = 2
,我称其为游戏循环:
levels(score)
的功能从来没有被执行,我的源代码http://pastebin.com/JPZSTA6a 线路:35-38和150
谢谢
该函数正在调用,但您正在为函数中的enemies
和velocity
分配,因此它们是该函数的局部函数,并在函数返回时被丢弃。所以你的功能被称为,但没有持久的效果。
你需要阅读Python中的locals和globals。正如其他人指出的,您在这里也有Score
和score
。 Python区分大小写,它们是不同的名称。
你有if score >= 100
当你可能意味着if Score >= 100
。该函数被执行,只是if语句总是计算为false。
这是错误之一,但仍然无法正常工作。 if语句放置在游戏循环中时执行。 – ErHunt 2012-04-28 00:44:39
这是一个范围问题,你指的变量(敌人和速度)是在一个while循环内进一步创建的,所以它们不在你要修改它们的函数的范围内。你需要阅读Execution model它应该能够阐明范围规则。
我尝试在游戏中放置得分,敌人和速度(),但仍然没有调用func – ErHunt 2012-04-28 01:01:49
您的代码,转述:
def game():
def levels(Score):
print 'levels!'
while start == True:
print 'start is indeed True!'
while not finish or falling:
'I am not Finnish'
for i in range(enemies):
'alas for I am beset by enemies!'
levels(score)
那么,为什么不是水平()被调用?我想这些许多控制流程项目中的一个并不符合你的要求。我不能说例如你的敌人变量是否是空的,但我可以告诉你,印刷品是你的朋友。
对于“该函数从未被执行”的说法,你有什么证据? – 2012-04-28 00:36:48
您是否曾尝试在函数中放入'print'语句来测试它是否被调用? – Wes 2012-04-28 00:38:22
@KarlKnechtel因为如果函数被执行,它会抛出一条错误消息。 – ErHunt 2012-04-28 00:42:31