向会话存储的整数添加整数

时间:2017-01-26 20:13:17

标签: python alexa

我正在编写python中的一项技能,将会话中的整数存储为“ mor_score ”,如下所示:

{
  "session": {
    "sessionId": "SessionId.REDACTED",
    "application": {
      "applicationId": "amzn1.ask.skill.REDACTED"
    },
    "attributes": {
        "mor_score": 0
    },

我的一个意图是尝试将值添加到 mor_score ,但我无法弄清楚如何这样做。意图的代码如下所示:

def choice_one(intent, session):
    card_title = "Add It Up"
    reprompt_text = None
    should_end_session = False
    if intent['slots']['ChoiceOneSlot']['value'] == 'Red':
        mscore = session.get('attributes').get('mor_score') # currently a value of 0
        session_attributes = {'mor_score': mscore +=2} # trying to add 2
        speech_output = "<speak>Okay, you choose red.</speak>"
    elif intent['slots']['ChoiceOne']['value'] == 'blue':
        speech_output = "<speak>Yes, you choose blue.</speak>"
    else:
        speech_output = "<speak>Try again with an acceptable answer.</speak>"
    return build_result(session_attributes, build_speechlet_response(
        card_title, speech_output, reprompt_text, should_end_session))

我知道如何将结果返回到Alexa会话中,但我显然错过了在返回变量之前可以将数字添加到变量的过程。非常感谢任何帮助。

编辑:以下代码将我排除在外!

mscore = session.get('attributes').get('mor_score')
mscore +=2
session_attributes = {'mor_score': mscore}

1 个答案:

答案 0 :(得分:0)

mscore += 2是Python中的一个语句 - 它绝对不能用作表达式的一部分。您需要将其单独放在一行上(然后在表达式中仅使用mscore),或者在表达式中使用mscore + 2。这两种方法在mscore之后留下的值有所不同,但这并不重要,因为之后不再使用它。