为什么这在c语言中有效而在python中无效:(a=5)==5
python新手,也是C语言初学者。为什么主题代码会在python中返回错误为什么这在c语言中有效而在python中无效:(a=5)==5,python,c,Python,C,python新手,也是C语言初学者。为什么主题代码会在python中返回错误 赋值没有返回值吗?这在Python中根本无效。您不能将作业用作表达式。我将详细介绍Simeon的答案 首先,在表达式周围加括号。如果你自己在解释器中输入,你会得到一个语法错误。这是因为括号仅在上下文中定义/解释-当您在括号中使用表达式时,Python没有上下文 如果您键入(a-5),则它将尝试解析表达式,并告诉您a未定义。我希望这能有所帮助。C的设计对Python产生了显著的影响(请查看字符串%操作符),但有些东西被拒
赋值没有返回值吗?这在Python中根本无效。您不能将作业用作表达式。我将详细介绍Simeon的答案 首先,在表达式周围加括号。如果你自己在解释器中输入,你会得到一个语法错误。这是因为括号仅在上下文中定义/解释-当您在括号中使用表达式时,Python没有上下文
如果您键入
(a-5)
,则它将尝试解析表达式,并告诉您a未定义。我希望这能有所帮助。C的设计对Python产生了显著的影响(请查看字符串%操作符),但有些东西被拒绝了,因为它们是C代码中的错误源。赋值表达式,其中有一个这样的表达式。由于类似的原因,Preincrement和postcrement都被拒绝了,但+=(和类似的)最终成功了。如果您对这条语句进行评估,它可以归结为
真==5
这在任何地方都有意义吗?我不这么认为 它只是python和c是不同的语言,所以c中的一些语句在python中不起作用,反之亦然,versaC允许,python不允许。毕竟这是一种不同的语言。这也不一定是一件坏事,它避免了一个非常常见的错误,即如果a=b:而不是如果a==b:编写
。在C中,第一个通常不是您想要的,但不会抛出任何错误,留下潜在的严重错误。感谢您的快速支持。我现在明白了赋值不能用作表达式。你可以问为什么inti=0;i++;printf(“%d\n”,i)代码>使用C,但也不能使用python。