语法错误:无法分配给运算符

新手上路,请多包涵
def RandomString (length,distribution):
    string = ""
    for t in distribution:
        ((t[1])/length) * t[1] += string
    return shuffle (string)

如标题中所述,这将返回语法错误。在此示例中, distribution 是一个元组列表,每个元组包含一个字母及其分布,列表中的所有分布加起来为 100,例如:

 [("a",50),("b",20),("c",30)]

length 是你想要的字符串的长度。

原文由 TheFoxx 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 999
2 个回答

Python 很不高兴,因为您试图为无法赋值的事物赋值。

 ((t[1])/length) * t[1] += string

当您使用赋值运算符时,您将右侧的值分配给左侧的变量或元素。在您的情况下,左侧没有变量或元素,而是一个解释值:您正试图将一个值分配给不是“容器”的东西。

根据您所写的内容,您只是误解了此运算符的工作原理。只需切换您的操作数,就像这样。

 string += str(((t[1])/length) * t[1])

请注意,我已将分配的值包装在 str 中,以便将其转换为 str 以便它与被分配的 string 变量兼容-到。 (数字和字符串不能相加。)

原文由 cheeken 发布,翻译遵循 CC BY-SA 3.0 许可协议

确保变量没有连字符 (-)。

在 Python 的变量名中不允许使用连字符,连字符用作减法运算符。

例子:

 my-variable = 5   # would result in 'SyntaxError: can't assign to operator'

原文由 Anupam 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题