《Python编程从0到1》笔记1——表达式的风格(前缀、中缀、后缀)
运算符和运算数组成表达式。运算符和运算数的出现次序会影响表达式乃至程序设计语言的风格。
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——表达式的风格(前缀、中缀、后缀)的更多相关文章
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
- Python编程从入门到实践笔记——类
Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...
- Python编程从入门到实践笔记——字典
Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...
- Python编程从入门到实践笔记——操作列表
Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...
- Python编程从入门到实践笔记——列表简介
Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...
- Python编程从入门到实践笔记——变量和简单数据类型
Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...
- Python编程从入门到实践笔记——文件
Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
- Python编程从入门到实践笔记——if语句
Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...
随机推荐
- C++类模板——博客链接
https://www.jianshu.com/p/70ca94872418 C++类模板,你看我就够了 值得学习~
- 绑定与非绑定以及property装饰器_day_21 作业题
1.定义MySQL类 1.对象有id.host.port三个属性 2.定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一 3.提供两种实例化方式,方式一:用户传入host和po ...
- 快速排序java代码
法一: //快速排序 通过测试 public class QuickSortTest2 { public static void quickSort(int[] data,int low,int hi ...
- linux运维、架构之路-K8s健康检查Health Check
一.Health Check介绍 强大的自愈能力是k8s容器编排引擎一个重要特性,自愈能力的默认实现方式为自动重启发生故障的容器,另外还可以利用Liveness和Readiness探测 ...
- 收藏一个bit模板使用实例
#include<bits/stdc++.h> using namespace std; typedef long long ll; #define MAX_N 1000000 int b ...
- [pytorch笔记] torch.nn vs torch.nn.functional; model.eval() vs torch.no_grad(); nn.Sequential() vs nn.moduleList
1. torch.nn与torch.nn.functional之间的区别和联系 https://blog.csdn.net/GZHermit/article/details/78730856 nn和n ...
- idea maven sync Cannot resolve xxx 的解决方案
经常会出现这种奇葩情况,提示找不到包 其实是因为网络波动或者突然断掉,导致包更新出现问题 直接去maven的仓库目录 找到不能找到的包 删掉相关目录 然后重新更新maven就行了 比如 直接去仓库目录 ...
- jQuery Validate 验证成功时的提示信息
大多数时候我们使用validate进行前台验证的时候,都是验证错误的时候给出提示信息,最近在做一个项目的时候,想这验证成功后给出一个验证成功的提示.于是在网上找了一些资料. <!doctype ...
- LeetCode 12. 整数转罗马数字(Integer to Roman)
题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II , ...
- HearthBuddy 第一次调试
HearthBuddy https://www.jiligame.com/70639.html 解压缩包,打开hearthbuddy.exe直接运行就可以:不用替换mono.dll直接可用:不需要校验 ...