语句乎?表达式乎?(Python/C)
2016-02-18 12:41
495 查看
返回值是函数才有的概念;
语句:statement,用来执行,本身自然无
表达式:expression,可以有
Python 中:赋值(
C 中:先有的赋值表达式(assignment expression),
赋值(
由于赋值运算符的右结合性(右结合返回左值),赋值符
因为赋值表达式的右结合性,也即
[2] C语言赋值语句详解
语句:statement,用来执行,本身自然无
值的含义;
表达式:expression,可以有
表达式值;
Python 中:赋值(
=)为语句 assignment statement
C 中:先有的赋值表达式(assignment expression),
赋值表达式+
;⇒ 赋值语句;
Python 中的赋值语句
在 Python 中,赋值为语句(statement),不具有值(value)的含义;# Python >>> a = b = 3 >>> a = (b=3) File "<ipython-input-38-da144da09871>", line 1 a = (b=3) ^ SyntaxError: invalid syntax >>> print(a = 1) TypeError: 'a' is an invalid keyword argument for this function # 更加地错不可言 # 此时的 a=1 不仅不是赋值表达式, # 赋值语句都不是, # 从函数的观点,a 是关键字参数,1是传递进来的该参数的值
C/C++ 的赋值表达式
// C int a, b, c; // 以下的两条语句等价 a = b = c = 3; a = ( b = (c = 3));
赋值(
=)在 C 语言中有着较为丰富灵活的用法;
由于赋值运算符的右结合性(右结合返回左值),赋值符
=右侧的表达式也可以是一个赋值表达式
int a, b, c, d, e; a = b = c = d = e = 5; // 根据赋值运算的右结合性,实际上等效为 e = 5; d = e; c = d; b = c; a = b; // 或者写为 a = (b = (c = (d = (e = 5))));
因为赋值表达式的右结合性,也即
a = b = c = 5⇔
a = (b = (c = 5)),在变量的声明中,不允许连续赋值,
int a = b = 5; // 错误, // int a = (b = 5); // 此时 b 未定义
References
[1] 为什么在python3里b=a=1是合理表达式,而print(a=1)却不是。a=1为什么没有返回值?[2] C语言赋值语句详解
相关文章推荐
- Python模块 - os
- Python-面向对象 (二 继承)
- Python 18.2 asyncio
- Python正则表达式
- Python版本需要是2.7
- python程序打包成exe执行文件
- Python 18.1 协程
- Python学习之路-初学篇之初识装饰器
- Python Socket Client及Server简单编程
- python模块介绍- collections(5)-OrderedDict 有序字典
- Python filter,map,lambda,reduce,列表解析
- Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
- Python之enumerate
- python 基础(四) 正则,递归 生成器
- 不相交集python实现
- Python之计算器(第四天)
- Python文本处理常用代码总结(二)
- 在python官网下载了安装包双击之后没有反应?
- Python的getattr(),setattr(),delattr(),hasattr()
- python之计算器(第四天)