《自学是门手艺》读书笔记8

本篇内容较长,主要介绍值,值的类型、各类型值间操作符及值间的基础运算和复杂运算。此笔记只摘录主要文字说明内容,书籍原文中有对应的程序语句示例。

从结构上来看,一切的计算机程序,都由且只由两个最基本的成分构成:
运算(Evaluation)
流程控制(Control Flow)

在程序中,被运算的可分为常量(Literals)和变量(Variables)。

值是程序的基础成分(Building blocks),它就好像盖房子用的砖块一样,无论什么样的房子,到最后都主要是由砖块构成。

常量,当然有个值 —— 就是它们字面所表达的值。

变量必须先赋值才能使用,也就是说,要先把一个值保存到变量中,它才能在其后被运算。

值的类型

在编程语言中,总是包含最基本的三种数据类型:

布尔值(Boolean Value)
数字(Numbers):整数(Int)、浮点数(Float)、复数(Complex Numbers)
字符串(Strings)

既然有不同类型的数据,它们就分别对应着不同类型的值。

运算的一个默认法则就是,通常情况下应该是相同类型的值才能相互运算。

在不得不对不同类型的值进行运算之前,总是要事先做 Type Casting(类型转换)。比如,

将字符串转换为数字用 int()、float();

将数字转换成字符串用 str();

另外,即便是在数字之间进行计算的时候,有时也需要将整数转换成浮点数字,或者反之:

将整数转换成浮点数字用 float();

将浮点数字转换成整数用 int();

有个函数,type(),可以用来查看某个值属于什么类型:

针对不同类型的数据,有各自专用的操作符。

操作符

数值操作符
针对数字进行计算的操作符有加减乘除商余幂:+、-、*、/、//、%、**。

其中 + 和 - 可以对单个值进行操作,-3;其它的操作符需要有两个值才能操作。

从优先级来看,这些操作符中:

对两个值进行操作的 +、- 的优先级最低;

稍高的是 *、/、//、%;

更高的是对单个值进行操作的 +、-;

优先级最高的是 **。

布尔值操作符
针对布尔值,操作符有与、或、非:and、or、not。

它们之中,优先级最低的是或 or,然后是与 and, 优先级最高的是非 not:

逻辑操作符

数值之间还可以使用逻辑操作符,1 > 2 返回布尔值 False。逻辑操作符有:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、!=(不等于)、==(等于)。

逻辑操作符的优先级,高于布尔值的操作符,低于数值计算的操作符。 即:数值计算的操作符优先级最高,其次是逻辑操作符,布尔值的操作符优先级最低。

字符串操作符

针对字符串,有三种操作:
拼接:+ 和 ' '(后者是空格)
拷贝:*
逻辑运算:in、not in;以及,<、<=、>、>=、!=、==

字符之间,字符串之间,除了 == 和 != 之外,也都可以被逻辑操作符 <、<=、>、>= 运算:

这是因为字符对应着 Unicode 码,字符在被比较的时候,被比较的是对应的 Unicode 码。当字符串被比较的时候,将从两个字符串各自的第一个字符开始逐个比较,

列表操作符

列表的标示,用方括号 [];举例来说,[1, 2, 3, 4, 5] 和 ['ann', 'bob', 'cindy', 'dude', 'eric'],或者 ['a', 2, 'b', 32, 22, 12] 都是一个列表。

因为列表和字符串一样,都是有序容器(容器还有另外一种是无序容器),所以,它们可用的操作符其实相同:

拼接:+ 和 ' '(后者是空格)

拷贝:*

逻辑运算:in、not in;以及,<、<=、>、>=、!=、==

复杂运算

对于数字进行加、减、乘、除、商、余、幂的操作,对于字符串进行拼接、拷贝、属于的操作,对布尔值进行或、与、非的操作,这些都是相对简单的运算。

更为复杂一点的,我们要通过调用函数来完成 —— 因为在函数内部,我们可以用比 “单个表达式” 更为复杂的程序针对传递进来的参数进行运算。

笑来老师将庞杂的知识点按照实际学习进展优化配置,便于读者清晰理解,但更有效地掌握须要动手配置运行程序的相关插件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 标签: 我的笔记 ---学习资料:http://javascript.ruanyifeng.com/ 1. 导论 ...
    暗夜的怒吼阅读 4,262评论 0 1
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    徵羽kid阅读 3,968评论 0 0
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 13,142评论 1 51
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,120评论 0 10
  • 1.饼图的定义 由一组或者多组数值按照百分比扇区组成的圆形图,最终圆形图的比例为100%,意味着所有数据都是大于等...
    夜雨y阅读 10,253评论 0 2