0
speed_of_light = 299792458.0
cycles_per_second = 2700000000.0
speed_of_light/cycles_per_second = x
print(x)

以上工作,但当我这样做时,我得到一个错误?X 在这里是一个字符串。

speed_of_light = 299792458.0
cycles_per_second = 2700000000.0
speed_of_light/cycles_per_second = 'x'
print('x')

%run "/tmp/tmpMFc4pM.py"
File "/tmp/tmpMFc4pM.py", line 5
'x' = speed_of_light/cycles_per_second
> SyntaxError: can't assign to literal
4

3 回答 3

2

也许你的意思是:

speed_of_light = 299792458.0
cycles_per_second = 2700000000.0
x = speed_of_light/cycles_per_second
print (x)

正如其他人现在所指出的那样,变量应该在左边,然后是等号,然后(在右边)你想要放入变量的东西。

于 2013-10-28T02:37:28.587 回答
2

您不能为计算分配值。

speed_of_light/cycles_per_second = 'x'是一个赋值,而不是数学意义上的等式。

您可能打算做相反的事情,设置xspeed_of_light/cycles_per_second. 换句话说,分配speed_of_light/cycles_per_secondx

x = speed_of_light/cycles_per_second

请注意,x它没有放在引号中(这将使其成为字符文字),而是简单地说x,这意味着它是一个变量并且可以保存分配给它的任何值。

例如,你可以说类似

age = 20

但不是

20 = age

虽然在数学方面它们是等价的,但第二个作业会给你你收到的错误信息(SyntaxError: can't assign to literal)。换句话说,您试图为文字 (20) 分配一个值,该值不能包含除它所代表的值之外的任何其他值。

于 2013-10-28T02:38:02.007 回答
1

正如错误所说,您不能将可变数量分配给像x. 这就像说字符串“冰淇淋”现在等于 2.71。这没有意义。

此外,您的赋值语法颠倒了。将其更改为

x = speed_of_light/cycles_per_second

这表示取右侧的值并将其分配给左侧的变量。

于 2013-10-28T02:38:20.720 回答