运算符和运算数组成表达式。运算符和运算数的出现次序会影响表达式乃至程序设计语言的风格。

1.前缀表达式

前缀,是指运算符的位置在前。前缀风格的一个例子是函数调用,如求最大值函数:max(3, 2, 5)。函数max接收若干个运算数,计算其中最大者作为表达式的值。这种前缀函数调用形式称为面向过程的函数调用风格。

1+2也可以写为前缀形式(+ 1 2)。Python不使用这种形式,但著名的程序设计语言Lisp就使用这种风格。[1]

2.中缀表达式

中缀,顾名思义是指运算符的位置在中间。1+2毫无疑问属于中缀表达式,但更值得注意的是面相对象风格的函数调用,如:"helloPythonworld".split(" ")。这个表达式里的运算是split函数,这个函数接受两个参数:第一个是字符串"helloPythonworld",第二个是空格字符串" "。计算的过程则是以空格为分隔符切割字符串,得到一个包含切割结果的列表["hello", "Python", "world"]。

面向过程和面向对象风格的函数调用在Python中都有广泛应用。本书从开始就普遍使用这两类风格的函数调用。本书将在第2章详细讨论函数,在第四章详细讨论面向对象设计。

3.后缀表达式

(1 2 +)是后缀表达式。后缀表达式和人们在进行竖式演算的书写次序一致(先写下数字,再写运算符,再计算结果),如图 1.1 所示。

图 1.1 竖式运算

某些高级计算器支持以后缀次序输入算式,如HP48G。在程序设计语言的语法规则中,后缀序比较少见。本书在1.8.5 节的示例中使用了后缀表达式。

[1] 有兴趣的读者可以参阅《程序设计语言的构造和解释》 [39],该书通篇用一种LISP语言的方言Scheme写就,是计算机科学领域的经典书籍。

这是一本很有趣很有趣的Python入门书,墙裂推荐。

《Python编程从0到1》笔记1——表达式的风格(前缀、中缀、后缀)的更多相关文章

  1. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  2. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  3. Python编程从入门到实践笔记——字典

    Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...

  4. Python编程从入门到实践笔记——操作列表

    Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...

  5. Python编程从入门到实践笔记——列表简介

    Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...

  6. Python编程从入门到实践笔记——变量和简单数据类型

    Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...

  7. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  8. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  9. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

  10. Python编程从入门到实践笔记——if语句

    Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...

随机推荐

  1. XXL-JOB原理--任务调度中心任务管理

    XXL-JOB原理--任务调度中心任务管理 https://blog.csdn.net/qq924862077/article/details/82713758

  2. C# JSON的序列化与反序列化

    需要添加引用:System.ServiceModel.Web 和 System.Runtime.Serialization,然后使用Using: using System.Runtime.Serial ...

  3. python--数学运算函数

    x=-100 y=abs(x) #求绝对值 y=divmod(9,4) #9/4之后获取整数与余数 #(2, 1) #返回一个元组(2, 1),第一个数是整数,第二个数是余数 y=round(3.14 ...

  4. 3、Grid、GridSplitter 网格分离器、SharedSizeGroup 共享尺寸组

    Grid——网格布局,是WPF中最强大的布局容器,可以实现任何其他容器的布局.一个网格中只展示一个元素,若要展示多元素,可用容器 布局舍入:网格的边界有时会模糊,如三等分100宽度无法被整除.推荐设定 ...

  5. Luogu2000 拯救世界

    题目链接:戳我 生成函数的入门题吧. 我们可以把条件限制转化为生成函数,然后用第i项的系数来表示一共使用n块石头的方案个数. (你问我为什么?你可以自己演算一下,或者去看大佬的博客-->这里面讲 ...

  6. Map循环/迭代/遍历效率、性能问题。

    项目开发完毕,为了找点事打发一下时间,于是用findBugs插件对当前完工的项目进行扫描,发现了很多问题.其中有个关于性能的问题,在这里记录一下. 提示信息为:Inefficient use of k ...

  7. react-router-dom 实现左侧导航

    1.介绍react-router-dom https://reacttraining.com/react-router/web/example/basic 这个官网有很多栗子可以练手 1.1 Hash ...

  8. 实现一个成熟的底层毛玻璃效果(纯CSS)

    写在前面 毛玻璃背景是一个很常见的网页样式,想要实现,其实并不难,但经过我在网上的搜索发现,大量实现方法都较为不规范,且把问题复杂化了(例如各种z-index属性和position的定位)现提供一个代 ...

  9. 【转】HLS视频点播&直播初探

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  10. 六、Java中一个key存多个value的MultiValueMap,一键多值

    一.MultiValueMap介绍,与map,HashMap相差不多 添加一个Key对应一个Value的:void add(K, V); 添加一个Key对应多个Value的:void add(K, L ...