def add_10(x):
tenplus=x+10
return tenplus
add_30=add_10(30)
add_90=add_10(90)
如果我交换了最后两行,我得到了:
def add_10(x):
tenplus=x+10
return tenplus
add_10(30)=add_30
add_10(30)=add_90
有错误。 计算机如何阅读第二版?
答案 0 :(得分:3)
它们不是等式;他们是作业。不要混淆=
作为数学等式符号。这是一个赋值运算符。它将RHS分配给LHS。
想象一下,赋值运算符是←
而不是=
。然后,这会将add_10(30)
的结果分配给名为add_30
的变量:
add_30 ← add_10(30)
这会...将add_30
分配给函数调用add_10(30)
?这是什么意思?完全没有道理,是吗?
add_10(30) ← add_30 # huh?
确实,当我第一次开始编程时,我也对=
感到困惑。如今,我们的程序员都已经习惯了=
,但是当C语言问世时,它不一定是70年代的最佳选择。实际上,被设计为教学语言的Pascal故意发明了一种新的,非对称的赋值运算符,以免混淆数学系学生。 =
是平等运算符,而不是赋值。
add_30 := add_10(30)
if add_30 = 40 then ...
太糟糕了,没赶上。 C赢得了影响战争,大多数现代语言的语法都基于C,因此=
就是赋值。
答案 1 :(得分:1)
在这里,“ =”是赋值运算符。在第一种情况下,您将已知值分配给未知变量-这很有意义。在第二种情况下,我不确定您要达到什么目标。