我正在编写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}
答案 0 :(得分:0)
mscore += 2
是Python中的一个语句 - 它绝对不能用作表达式的一部分。您需要将其单独放在一行上(然后在表达式中仅使用mscore
),或者在表达式中使用mscore + 2
。这两种方法在mscore
之后留下的值有所不同,但这并不重要,因为之后不再使用它。