googlewave机器人/Python变量问题

2024-06-07 19:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试验波浪机器人python apiv2。你知道吗

我为机器人做了一个小的8ball应用程序,效果很好,现在我正在尝试做一个琐事应用程序。你知道吗

我从来没有用Python编程过,但我很确定我的语法是正确的。以下是相关代码:

elif (bliptxt == "\n!strivia"):
  reply = blip.reply()
  if (triviaStatus != "playing"):
   reply.append("Trivia Started!")
   triviaStatus = "playing"
  else:
   reply.append("Trivia is already running!")
elif (bliptxt == "\n!etrivia"):
  reply = blip.reply()
  if (triviaStatus == "playing"):
   reply.append("Trivia Ended!")
   triviaStatus = "stopped"
  else:
   reply.append("Trivia is not running! To start trivia, type !strivia")
else: (snipped out)

好的,基本上我想让它工作,这样当有人点击“strivia”时,机器人识别出有人想玩,所以它首先检查一个叫做triviaStatus的变量,看看我们是否已经在玩了,然后从那里开始。很简单的东西。你知道吗

为了使这项工作(实际上,这段代码是为了测试这个问题)的变量将需要有效地像php$\u会话变量-也就是说,它记住了变量的值,每次有人blips和不重置每次。你知道吗

然而,不管是不是这样(如果不是这样,那么我假设我可以通过将变量设置保存在txt文件或其他文件中来做同样的事情),我都感到困惑,因为上面的代码根本不起作用。这就是说,机器人没有回应!还是继续!埃特里维亚。如果变量没有保存,那么如果有什么,机器人应该回答“琐事开始”或“琐事没有运行!”每次。但它根本没有回应。你知道吗

如果我取消对triviaStatus的检查,机器人会回复。但是没有逻辑,我无法测试我的问题。你知道吗

我也试过做一个!三个状态,它会回复

"Trivia status is " + triviaStatus

但这也让人窒息。为什么每次我想使用triviaStatus,机器人就死掉了?请注意,我能够设置triviaStatus fine(我只是无法通过回复它来检查输出是什么……)

所以,总结一下……为什么上面的代码不起作用,但是下面的代码起作用了:

elif (bliptxt == "\n!strivia"):
  reply = blip.reply()
  reply.append("Trivia Started!")
  trivia_status = "playing"
elif (bliptxt == "\n!etrivia"):
  reply = blip.reply()
  reply.append("Trivia Ended!")
  trivia_status = "stopped"

谢谢!你知道吗


Tags: 代码is机器人replyelseelifappendblip
1条回答
网友
1楼 · 发布于 2024-06-07 19:35:49

似乎应该将triviaStatus重命名为trivia_status,并确保trivia_status具有某些值,例如,在第一次使用之前将其绑定到None。否则,由于triviaStatus/trivia_status未引用任何对象,代码可能会引发UnboundLocalErrorNameError异常。你知道吗

相关问题 更多 >

    热门问题