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
是你想要的字符串的长度。
答案 0 :(得分:10)
Python很沮丧,因为您试图将值分配给无法赋值的内容。
((t[1])/length) * t[1] += string
使用赋值运算符时,可以将右侧的值分配给左侧的变量或元素。在你的情况下,左边没有变量或元素,而是一个解释的值:你试图为一个不是“容器”的东西赋值。
根据您所写的内容,您只是误解了此运算符的工作原理。只需切换你的操作数即可。
string += str(((t[1])/length) * t[1])
请注意,我已将指定的值包装在str
中,以便将其转换为str
,以便与分配给它的string
变量兼容。 (数字和字符串不能一起添加。)
答案 1 :(得分:1)
好吧,正如错误所说,你在作业的左侧有一个表达式(((t[1])/length) * t[1]
),而不是变量名。你有那个表达式,然后你告诉Python向它添加string
(总是""
)并将其分配给... where? ((t[1])/length) * t[1]
不是变量名,因此您无法将结果存储到其中。
您的意思是string += ((t[1])/length) * t[1]
吗?这会更有意义。当然,您仍在尝试向字符串添加数字,或者乘以字符串...其中一个t[1]
应该是t[0]
。
答案 2 :(得分:0)
而不是((t[1])/length) * t[1] += string
,您应该使用string += ((t[1])/length) * t[1]
。 (另一个语法问题 - int is not iterable
- 将是你要弄清楚的练习。)
答案 3 :(得分:0)
如果它对某人有帮助,则如果您的变量中包含连字符,您可能会看到此错误,因为Python的变量名称中不允许使用连字符并将它们用作减法运算符。
示例:
my-variable = 5 # would result in 'SyntaxError: can't assign to operator'
答案 4 :(得分:-2)
您认为这应该是什么:((t[1])/length) * t[1] += string
Python无法解析这个,这是一个语法错误。
答案 5 :(得分:-6)
只在python中工作
a=4
b=3
i=a+b
我是新的运营商