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
是您想要的字符串的长度。
确保变量没有连字符 (-)。
Python 中的变量名称中不允许使用连字符,连字符用作减法运算符。
示例:
my-variable = 5 # would result in 'SyntaxError: can't assign to operator'
Python 会感到不安,因为你试图为无法赋值的东西赋值。
((t[1])/length) * t[1] += string
当您使用赋值运算符时,您将右侧的值分配给左侧的变量或元素。 在您的情况下,左侧没有变量或元素,而是一个解释值:您试图将一个值分配给不是“容器”的东西。
根据您所写的内容,您只是误解了该运算符的工作原理。 只需切换你的操作数,就像这样。
string += str(((t[1])/length) * t[1])
请注意,我已将分配的值包装在
str
中,以便将其转换为 str
,以便它与所分配的 string
变量兼容。 (数字和字符串不能相加。)
您应该使用
((t[1])/length) * t[1] += string
,而不是 string += ((t[1])/length) * t[1]
。 (另一个语法问题 - int is not iterable
- 将是你要解决的练习。)
嗯,正如错误所示,赋值的左侧有一个表达式 (
((t[1])/length) * t[1]
),而不是变量名。你有这个表达式,然后你告诉 Python 添加 string
(始终是 ""
)并将其分配给...哪里? ((t[1])/length) * t[1]
不是变量名,因此您无法将结果存储到其中。
您的意思是
string += ((t[1])/length) * t[1]
吗?那会更有意义。当然,您仍在尝试将数字添加到字符串,或乘以字符串...其中一个 t[1]
可能应该是 t[0]
。
我只能说 - 确保你的变量不包含空格,如果你需要单独使用下划线(_)。
您认为这应该是什么:
((t[1])/length) * t[1] += string
Python 无法解析这个,这是一个语法错误。
仅在Python中有效
a=4
b=3
i=a+b
我是新操作员