时间:2021-07-01 10:21:17 帮助过:99人阅读
def f(x, y):
return str(x) + str(y)
楼上的各位解释的已经很清楚了,总结一下就是:#include
void main(){
int x = 200;
if(x == 1000)
printf("true");
else
printf("false");
}
你要理解为b=a=1是一个语句,而不是表达式。
In [1]: def foo():
...: a = b = 1
...:
In [2]: from dis import dis
In [3]: dis(foo)
2 0 LOAD_CONST 1 (1)
3 DUP_TOP
4 STORE_FAST 0 (a)
7 STORE_FAST 1 (b)
10 LOAD_CONST 0 (None)
13 RETURN_VALUE
赋值语句没有返回值,所以不是表达式,这是因为赋值语句不需要返回值, Python 既不是 C 也不是 Lisp。assignment_stmt ::= (target_list "=")+ (expression_list | yield_expression)
为什么在python3里b=a=1是合理表达式
链式赋值只是一种语法结构 他并不是跟cpp一样"把1赋给a 再把a的值赋给b"而print(a=1)却不是
这句话的意思是把1赋给print的形参a 而不是像cpp那样“把1赋给局部变量a 再把a的值传进去”a=1为什么没有返回值
a=1在cpp里面是表达式(expression) 在py里面叫语句(statement)print(a=1)
--------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in ()
----> 1 print(a=1)
TypeError: 'a' is an invalid keyword argument for this function
if( x = 1 ) { #do.... }