编程的本质就是数据和运算,数据由基本数据类型、数据结构来表示,运算就是对这些数据的各种操作,基本的加减乘除、是非判断、流程控制等等。这些操作就是今天我们要讲的运算符、表达式和语句。

前面我们学习Python的基本语法时,讲到了Python程序的的概念,这个行再细分就是运算符(Operators)、运算对象(Operands)、表达式(Express)、语句(Statements)。

提示:运算和操作这两个概念在编程中往往是一样的

比如下面这一行代码:

a = 5; b = a + 7; c = a if a > b else b

先来分解一下这一行:

  • 语句: 由表达式组成。此例共三条语句,用分号;分开,即一个物理行有三个逻辑行;
  • 表达式: 由运算符和操作对象组成。此例中的表达式有a + 7, a > b等;
  • 运算对象: 即各种对象。此例中的a, b, c, 5, 7等。

用一行表示它们的关系就是:

运算对象 + 运算符 -> 表达式 -> 语句

运算对象和运算符构成表达式,表达式构成语句

运算对象

运算对象就是由各种对象构成的集合,这些对象里面有些是常量,有些是变量

常量

Python中的常量我们已经见过很多了,比如整数:9, 7, 8等等,浮点数:3.14, 0.618等等,字符串:'猿人学Python',这些常量我们看到它们时就知道它们的意思,这就是字面意义上的常量。

字面意义上的常量就是按照它们的字面意义使用它们的值。比如,数字8总是代表它自己,它是一个常量,不能改变它的值。

变量

常量代表具有特定意义的对象,但不足以满足编程的需要。编程经常需要一种既可以存储数据有可以对它进行运算(操作)的东东,这个东东就是变量。编程中要经常使用变量,就需要给变量起个名字:变量名。变量名的起名规则就是前面讲Python基本语法时提到的标识符,忘了的小猿可以再去看看那一节。

最开始那一行Python代码中的a, b, c都是变量,而5, 12, 5就是它们各自存储的值。如果再来一句a = a + 3a的值就变成了8,变量a的值就变了。
变量的赋值就是给变量一个值,比如a = 3,就是给a变量以3的值。

a = 3  # 把3赋值给a,此时a的值为3
b = a  # 把a赋值给b,此时b的值等于a的值,也是3
c, d = a, b  # 这是多重赋值,相当于 c = a; d = b

运算符

运算符就是对运算对象进行的具体运算名称。不同的运算符代表不同的运算,比如加减乘除。
通过Python shell可以方便的体验运算符的使用:

In [115]: 2 + 5
Out[115]: 7In [116]: 8 * 9
Out[116]: 72

下面我们用一个表格来清晰的列出各种运算符及其用法。


运算符优先级(Operator precedence)
小时候学数学的时候,我们知道先乘除后加减,比如要算2 + 5 * 6的话,先算5 * 6得到30, 再算2 + 30得到32. 也就是说,乘法运算符的优先级高于加法运算符。

下面的表格就是Python的运算符的优先级,从低到高排列,同一个单元格里面的运算符具有相同的优先级,这时候运算顺序从左到右。不过,还是建议大家通过使用圆括号来分组表达式(运算符和运算对象),这样可以清楚的指出运算的先后顺序,同时也让程序更加易读。
上面表格中有我们还没有接触到的运算符,这将会在后面的章节中讲解。

程序根据上表的顺序来进行运算,但是我们也可以通过圆括号来改变它们的计算顺序,比如(2 + 7) * 3中,就先计算圆括号里面的加法,然后再进行乘法。这个原则跟小学时学到的算术是一样的。

表达式(Expression)
表达式是一段可以计算为某个值的语法片段。换句话说,就是表达元素的累积,比如文字,名称,属性访问,运算符或函数调用,它们都返回一个值。与许多其它语言相比,并非所有语言结构都是表达式。还有一些语句不能用作表达式,比如while。赋值也是语句,但不是表达式。

福利:回复【01】可获取python入门教程福利

从上面对表达式的定义来看,a > 3是表达式,a = 3不是表达式,而是赋值语句。

语句(Statements)
语句是程序段(一个代码“块”)的组成单位。一条语句可以是一个表达式或某个带有关键字的结构,例如if, while或for。
语句的例子:

a = 5 # 赋值语句
if a > 3: #条件语句,其中 a > 3是表达式
print(‘a > 3’) #输出语句
总结
程序由语句组成;语句或是由表达式构成,或是赋值,或是if, while等关键字的结构;表达式由运算符和运算对象(数字、字符串等常量,变量等)组成,是语句的构成元素。

练习
自己画出数字的01比特位并进行<<, >>, &, |, ^, ~这些与操作,加深对二进制的位操作的理解。
随便写段程序,用上运算符、运算对象、表达式和语句这些概念。

【python教程入门学习】Python的运算对象、运算符、表达式和语句相关推荐

  1. [python教程入门学习]Python是什么?

    Python 是一种高级计算机编程语言,作者是荷兰人吉多·范罗苏姆.在 1989 年圣诞节期间,吉多打算开发一种新的脚本语言,用来取代 ABC 语言,就这样,一门新的编程语言 Python 诞生了. ...

  2. [python教程入门学习]Python标准库映射类型与可散列数据类型的关系

    本文章向大家介绍Python标准库映射类型与可散列数据类型的关系,主要包括Python标准库映射类型与可散列数据类型的关系使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  3. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  4. 【python教程入门学习】Python实现自动玩贪吃蛇程序

    这篇文章主要介绍了通过Python实现的简易的自动玩贪吃蛇游戏的小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学一学 实现效果 先看看效果 这比我手动的快多了,而且是单机的,自动玩没惹 ...

  5. 【python教程入门学习】普通人学python有意义吗

    普通人学python有意义吗?普通人能不能学习python语言,难不难,是否容易上手,学了python能做那些事情,能挣多少钱?这些问题是很多同学关心的问题,今天python教程入门学习就从小白同学的 ...

  6. 【python教程入门学习】学python要多久,0基础学python有多难

    学python要多久,0基础学python有多难,这是很多想学习python语言同学绕不开的问题,都害怕花完钱最终没有应有的回报!对于毫无经验0基础的同学来说学习python什么最重要,方向选对坚持下 ...

  7. 【python教程入门学习】第一个Pygame程序

    Pygame 作为一个入门级的游戏开发库,其实并不难学,只要掌握 Python 编程的相关知识就能很轻松地掌握它. Pygame 语法简单.明了,秉持了 Python 语言一贯的风格.同时,它作为一个 ...

  8. 【python教程入门学习】Python新年炫酷烟花秀代码

    先介绍下 Pygame 绘制烟花的基本原理,烟花从发射到绽放一共分为三个阶段: 1,发射阶段:在这一阶段烟花的形状是线性向上,通过设定一组大小不同.颜色不同的点来模拟"向上发射" ...

  9. 【python教程入门学习】Python扑克牌21点游戏实例代码

    大家好,本篇文章主要讲的是Python扑克牌21点游戏实例代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览 废话还是说太多了 直接上代码 | `import` `random ...

  10. 【python教程入门学习】python能做什么

    python能做什么?[python教程入门学习]介绍,最近许多的朋友咨询,听说python很火,甚至可以超越JAVA,因此很想学这个python,但是不知道python能做什么,能完成一些什么项目呢 ...

最新文章

  1. 百度语音合成 js html,Node.js结合百度TTS接口实现文字转语音功能
  2. c#截取字符串后几位_基础库的字符串设计
  3. sql 以a开头的所有记录_SQL开发与数据库管理笔记
  4. .NET 6新特性试用 | Nuget包验证
  5. java runtime 返回值_Java Runtime.exec()注意事项 | 学步园
  6. [JavaWeb-HTML]HTML标签_表单标签
  7. 【以太坊源码阅读】椭圆曲线加密和EIP155
  8. XenDesktop 5之痛---Database Transaction Log速增
  9. vue: 从组件通讯到vuex (上)
  10. 腾讯x5内核(TBS)简单集成封装
  11. 图片处理view - 成图,
  12. 【机器学习实战】利用朴素贝叶斯算法(naive_bayes)实现新闻分类
  13. PyTorch深度学习(B站刘二大爷)第九讲 多分类问题
  14. 【侯捷 C++ 面向对象高级开发】课程笔记以及个人注释(附带课程资源)
  15. 提取LSV中的高程数据在CAD中进行道路的方案设计流程
  16. stackoverflow 搜索问题技巧
  17. 微信jssdk录音功能开发记录
  18. Python(2)变量声明、变量类型
  19. HDLBits Lemmings3
  20. 地下管线探测重点与难点分析

热门文章

  1. javaweb第九天 JDBC
  2. 【九号电动车】六种开机方式
  3. html怎么在字体中加波浪线,强大的CSS:文字下波浪线动画效果
  4. 如何远程管理独立游戏开发团队
  5. 在x86-64系统上的函数调用过程(参考)
  6. 【Python减肥神器】为了催闺蜜减肥,我使出了十八般武艺
  7. 自然人代开需要准备什么?需要缴纳什么税?
  8. 2019年吉林大学数学建模校内选拔赛B题的一种思路
  9. 未来或将是属于人造皮肤的:电子时代的颠覆者
  10. 谷歌VR/AR业务副总裁:Daydream是关键步骤,要解决设备摩擦问题