且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

更新时间:2022-10-04 23:19:37

  1. 本节书摘来自华章计算机《树莓派Python编程指南》一书中的第3章,第3.1节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第3章 Python基础

在前面章节中,我们直接深入Python程序中,希望能够给你一个概念——什么是Python。但你还不清楚它具体是如何工作的。本章中,我们将回答这些问题,并详细介绍如何在Python中创建自己的程序。在后继的章节中,我们将分别介绍Python的不同特性,帮助你为树莓派编写不同类型的程序。

3.1 变量、值和类型

第2章中,我们看到变量可以将数据存储下来供我们在别的地方使用。它们是程序员手里的一个强大工具。现在让我们来看看它们究竟是什么。如果你之前有过其他语言的编程经验,在这里会发现Python和其他语言有点不同。
在Python解释器中输入语句:


《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型https://yqfile.alicdn.com/e3249589fd9282d73208213978ba06a4953f641b.png" >

它告诉Python你想使用一个名字为score,值为0的变量。在此之后,Python只要看到score,就会用值0来替换score。为了验证这一点,继续输入:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

请记住,Python是顺序执行我们的命令的,在使用score之前必须先给它赋值。否则,Python将会报错。
如果想改变score的值,只需要给它赋一个新值,如:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

现在Python再遇到score时就会用1来替换它(你可以再次执行print(score)来验证一下)。你也可以在更新它的值时使用它:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

变量几乎可以使用任何名字但必须以字母或下划线开始,并且不能使用Python关键字(如if、for等)。Python的命名习惯是使用小写字母,用下划线将单词分开,如:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

在前面的例子中,所有的值都是数字,然而,值不只可以是数字,也可以文字,如:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

我们甚至可以把同一个变量轮换赋值成数字和文字,例如:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

然而,变量的当前值只能是一种类型。
3.1.1 值和类型
看到数字3时,你只是看到一个3,而不关心它究竟是一个文字,还是数字。3就是3。Python却不一样。每个数据都有特定的类型,这样Python才知道该如何处理它们。通过函数type()可以看到Python数据的类型。在Python解释器中输入:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型https://yqfile.alicdn.com/37e0512c35fcca34c90efbe26120a63ec06af62b.png" >

Python告诉我们,第一个是int(整数integer的简写),第二个是str(字符string的简写)。这是因为Python认为整数3和字符3是不同的。执行下面这两行代码可以明显看出它们之间的区别:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

第一行将两个数字加一起,而第二行却是将两个字符合并在一起。由此可见,区分值的类型非常重要,如果出错,将会得到非常有意思的结果。为了探索更多的类型,可以输入:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型https://yqfile.alicdn.com/c6eee70ca57ae3e665b7c1995625af1b6f37d8ea.png" >

第一行输出float(一个浮点数表示一个实数,小数点位置不固定)。第二行输出bool(布尔类型,只有两个值:True和False)。
3.1.2 数字排序
数据的具体类型决定了Python可以执行哪些操作。这里我们从数值开始(包括int和float类型,但不包括string,虽然它也包含数字)。对于数值,可以有两种操作类型:比较和数值操作。比较,需要两个操作数,返回值为bool型。如表3-1所示。


《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型https://yqfile.alicdn.com/7764026cd56dd27a964c1c388de5531a919aebc2.png" >

数值操作返回一个数值类型,如表3-2所示。


《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

你可以在Python解释器中输入任何一个操作符来验证一下。例如:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

在程序中使用数值运算,通常都将其返回值赋值给某个变量。例如:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型https://yqfile.alicdn.com/be7dce760e230fc2b9804b7577026ce813e4b9db.png" >

3.1.3 使用Strings保存文字
string类型可以用来保存任何文字。创建字符串只需要将数据用单引号或者双引号括起来就可以了。在Python中,不论哪种引号都可以。我们首选双引号,因为它可以处理带’号(单引号或撇号)的字符串。但这绝不是普遍适用的。有些程序员喜欢使用单引号,因为其输入起来更方便。
这个数据类型不同于其他类型,因为许多时候,string不只是单个数据而是一组字母。它的名字也反映了这个特点——字符“串”,一串字符。
和数值类型一样,Python也为我们提供了一些操作方法。表3-3给出了一些常用的操作。


《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

3.1.4 布尔值:真或假
最后我们来看bool类型。它非常简单,只有两种可能取值:True和False。注意在Python中,这两个值的首字母要大写,并且不需要任何引号。同时,这个值通常不存在变量中(虽然我们在第2章中见到过存在变量中),它通常用于条件语句如if的判断条件中,我们将在本章后面部分详细介绍。其主要操作符是与(and)、或(or)和非(not)。
非,就是简单地转换下取值:


《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型


《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

与,需要两个操作数,如果两个数都为真,则返回真,否则,返回假:


《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型https://yqfile.alicdn.com/15a16667bf6e3a9e3801356909dc3be08e61daee.png
" >

或,也需要两个操作数,如果两个数中任何一个为真,则返回真:

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

3.1.5 数据类型转换
使用函数int()、float()和str()可以转换数据类型。它们分别将其他数据类型转换为整数、浮点数和字符串。然而它们却不能随意转换。如果将浮点数转为整数,Python将舍去所有小数部分。当字符串中只有一个字符时,才能转换成数字。但是,其他类型几乎都可以转换成字符串。下面给出了一些例子。

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

3.1.6 知识测试
下面是一些Python语句。看一下你是否能弄懂它们的意思。想出来什么意思之后,将它们输入Python解释器检验自己的判断。提示:有一些语句可能会导致错误。


《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型

练习1
下面程序中哪些是变量,它们的值是什么,类型是什么?答案在本章结尾。如果不确定,可以在代码中的某些地方加上print语句,并输入Python解释器中看看结果。当程序的运行结果和我们期望的不一样时,这个方法很有用,可以用来确定某些代码究竟做了什么事。

《树莓派Python编程指南》——第3章 Python基础3.1 变量、值和类型https://yqfile.alicdn.com/096b583a94d49524c3174e62366914baa6320135.png" >