Python 语法之数据类型
之前我们已经介绍了变量、变量的创建和赋值,以及变量的命名规则等等。今天我们继续来介绍 Python 的数据类型:数字类型、布尔型和字符串类型。我们用之前的例子来进一步讲解:
我们仔细来看这个语句:
我们看到,在我们对变量进行赋值时,有的赋值内容有引号,有的没有引号,这其实就是因为这些信息属于不同的数据类型。我们看到数字构成的信息是没有引号的,18 和 49.99 均是由数字构成,都没有引号,就像人类所了解的数学有整数、小数、分数等各种类型一样。在计算机的世界里,也有不同的数字类型,比如 18 就是整数,在 Python 中,我们用 int 来表示整数;49.99 是浮点数,在 Python 中用 float 表示;也就是说,我们人类所理解的整数,在计算机的认知中,是整型 int,而人类所理解的小数,在计算机中则是用浮点型 float 表示。
1.数字类型
(1)int
相传在上古时期,老百姓无法分辨粮食和草药,只能依靠打猎维持生存,即使生病也没办法医治,神农氏因为想改变这个局面,亲自上山采药,亲口尝各类草药,辨别药性。神农氏踏遍了山野,尝了七七四十九天,发现了麦、稻、谷子、高粱能充饥,并且尝出了 365 种草药,还编写了《神农本草》。
在这个故事中,我们看到了 2 个整数,七七四十九天和 365 种草药。
根据变量命名规则,我们将整数 49 赋值给变量 day,整数 365 赋值给变量 number。 整数为正数或负数,没有小数,长度不限。这些都是整数哟!
我们可以通过下划线_将有含义的英文连接起来,让我们的代码显得规范。(2)float
浮点数是包含小数的正数或负数,就是我们人类世界中的小数。
比如大家非常熟悉的 π:pi = 3.1415926,π 是特殊字符,不能用作变量名,因此我们这里用谐音 pi 来代替。
(3)运算符
我们大家都知道数字涉及到加减乘除、比大小等各种运算,Python 中也有这些运算哦,这就是 Python 的运算符,Python 中运算符包括算术运算符、赋值运算符、比较运算符和逻辑运算符,我们逐一来介绍。
(3.1)算数运算符
我们再来回顾下神农尝百草的故事,神农氏踏遍了山野,尝了七七四十九天,发现了麦、稻、谷子、高粱能充饥。
这里面的七七十九天,就可以用算术运算符来表示哦,Python 中用*来表示两数相乘,具体语句是:
我们看到最终打印出的是 49,Python 中的算术运算符,我们可以收藏下方表格!
(3.1.1)+(加)运算符
(3.1.2)-(减)运算符
(3.1.3)*(乘)运算符
(3.1.4)/(除)运算符
(3.1.5)%(取模)运算符
(3.1.6) ** (幂)运算符
(3.1.7)//(取整)运算符
(3.2)赋值运算符下面,我们一起来看下赋值运算符,在变量的赋值中,我们提到了 = 的含义是赋值,在 Python 中赋值运算符 = 可以和算术运算符进行结合。
(3.2.1)=运算符= 运算符和变量的赋值是一样的。
(3.3)比较运算符
在神农品尝的 365 种草药中,假设有 50 种可以作为粮食食用,有 200 种是对人类疾病有益的药材,那么到底是药材的数量多还是粮食的数量多呢,这就涉及到比较啦,在人类的认知中,这种比较非常简单:200 >50,那么在 Python 的世界中,这种比较是如何表达的呢,比较运算符就可以解决这个问题!
因为 200 是大于 50 的,因此 print() 打印的是 True,就是这种比较的结果为真!比较运算符返回的值是 True 或者 False。
==(等于)比较运算符 和 = 赋值运算符的区别:
在我们平时的认知中,等于就是用等号 = 来表达,但是在计算机中,等于要用 2 个等号来表达,单个等号 = 的含义是赋值哦,这一点,大家要熟记哈!
(3.4)逻辑运算符
神农告诉人们,麦、稻、谷子、高粱等 50 种植物可以作为粮食充饥,蒲公英、黄芪、三七等 200 种植物可以作为药材,现在我们想判断下粮食的数量小于 60 并且药材的品种大于 150,是否是真实的,该如何判断呢?在 Python 中是通过逻辑运算符 and 来实现的,我们来看下方语句:
我们看到打印出的内容是 True,and 运算符表示当 food_number < 60 和 drug_number > 150 都为真时,返回 True,下图是常见的逻辑运算符,大家可以保存下哦!
and
我们看到当 a 赋值为 4,a > 3 为真,b 赋值为 8,b < 10 为真,b < 6 为假,逻辑运算符 and 当 a 和 b 都为真的时候,才会返回 True,因此第一个 print() 返回值为 True,第二个 print() 返回值为 False。
2.布尔型
我们在进行逻辑运算和比较运算的时候,得到的结果为 True 或 False。在 Python 中,用 True、False 表示布尔值。布尔值可以用 and、or 和 not 运算。2.1 and 运算布尔值的 and 运算就是真真为真,当 and 连接的两个布尔型都是 True 的时候,为 True ,一真一假和两假都为假。
2.2 or 运算布尔值的 or 运算就是假假为假,当 and 连接的两个布尔型都是 False 的时候,为 False ,一真一假和两真都为真。
2.3 not 运算布尔值的 not 运算则表示非,非真就是假,非假就是真!
3.字符串类型
通过前面的介绍,我们知道了没有引号的数字类型是整数和浮点数,那么用引号包含起来的数据类型是什么呢?Python 中,以单引号 ' 或双引号 " 括起来的任意文本就是字符串啦,上图中 '女娲' 的数据类型就是字符串,大家这里需要注意的是,只要被引号包含的任意文本都是字符串!例如:'123456' "hello world!"。' 和 " 不是字符串的一部分,只是一种表示方式。
如果字符串横跨多行,可以使用三个单引号或三个双引号将字符串括起来。三个单引号:
三个双引号:
整型和浮点数可以赋值给变量,字符串也是可以赋值给变量的:
3.1 索引中国古人一直有观天象的习俗,通过观天象,来获得对季节、气候、甚至是国家命运的认知。现代,通过科学家们的努力,我们知道了浩瀚宇宙的深邃,知道了八大行星的存在,海王星(neptune),八大行星之一,假设我们在 Python 的世界中,可以重见神农,让我们用 Python 的语言为神农介绍下海王星的字母构成吧!这就要运用我们下方为大家介绍的内容:索引。在 Python 中,字符串中的字符可以通过索引来提取。可以从前往后索引,也可以从后往前索引。索引语法是:变量[下标],这里的下标是由数字表示,代表所要索引的字符在变量中的位置。当从前往后索引时,下标从 0 开始。当从后往前索引时,下标从 -1 开始,如下图所示!
大家来自己试一下下面这个题目:introduce_star = 'This is the neptune',将变量中所有的 e 打印出来!(可以试下从前向后索引,也可以试下从后向前哦)3.2 切片我们看到通过索引,只能提取单个字符,神农说,难得来一趟,想多认识一些字符,这个时候怎么办呢?我们可以通过切片来提取变量的多个字符,我们一起来看下切片怎么使用。切片语法是:变量[头下标:尾下标](不包括尾下标对应的元素)。当不指定头下标和尾下标时,获取的是整个字符串:star[:]。当只指定头下标时,获取的是从头下标到字符串结尾的所有字符。当只指定尾下标时,获取的是字符串的开头到尾下标的字符串(不包括尾下标对应的元素)。头下标和尾下标也可以使用负值。大家先在心中想一下下方语句的运行结果,再运行一下,看看结果是否一致呢?
3.3 字符串长度神农:“现代社会真神奇啊,不仅能认识海王星,还能读取海王星的另一种语言表达,可是我还有一个疑问,海王星的英文是几个字母构成的呢”?我们:“这个问题简单,Python 中 len() 可以获取字符串的长度哦”
在 Python 中,我们使用 len(变量名) 来获取变量的长度,len 是长度 length 的前三个字母,也是比较好记忆和理解的!3.4 字符串方法 Python 有一组可用于字符串的内置方法,可以实现字符串的各种变换,宋老师在这里还是建议大家收藏下方表格哟!
strip() 删除开头和结尾的空白字符神农:“现代的信息技术太精彩了!”我们:“这都不算什么哟,还有更精彩的,同样的 NEPTUNE(海王星),我们也可以做出一些变换的哦”神农:“哦?快快,教教我是怎么做的”有些时候,我们会在代码的编写中做一些空格的操作,这些空格在 Python 中就是空白字符,我们可以使用 strip()来删除字符串开头和结尾的空白字符,使用方法就是变量名.strip(),我们来看下方语句:
我们看到在没有删除开头和结尾的空白字符串之前,变量 star 的长度是 9,使用 strip() 之后,长度是 7,空白字符串被删除了!神农:“真是很神奇啊!”其余方法的使用是一样的,都是变量.方法,下方的几个方法大家自己运行体会下哈!3.5 转义我们曾经给大家介绍过转义字符,今天在进行字符串知识的学习之后,我们再给大家仔细介绍下转义字符中的 \。首先,我们先来回顾下字符串的一个要点,字符串是由单引号 ' 或双引号 " 括起来的任意文本。也就是说,在字符串的变量赋值中,是包含单引号或双引号的,那么对于有些语句本身就包含引号的,Hi, shennong, this 's the neptune! 这种情况 Python 是怎么处理的呢?在 Python 中,对于本身带有引号的字符串,有以下几种情况:(1)由双引号 " 括起来的任意文本包含单引号 '
(2)由单引号 ' 括起来的任意文本包含双引号 "
运行起来,也都是正确的,但是当我们把上述例子中的双引号 " 换成单引号 ',把单引号 ' 换成双引号 " 时,便会报错。这个时候就需要对 ' 或 " 进行转义:
4.获取数据类型与数据类型转换
神农:“这趟来的太值了,我认识了整型 int、浮点数 float、还有布尔值和字符串,可是怎么我感觉还是有些晕啊,尤其是遇到整数的数字时,到底哪些是整型?哪些是字符串呢?”我们:“神农前辈不要担心,这个 Python 也有办法解决哦!”在 Python 中,对于有些变量的数据类型,我们不太确定的时候,可以使用 type(),来获取变量的数据类型,type() 的使用方法是 type(变量名),我们一起来看下面的例子:
我们看到分别打印出了整型、字符串和浮点数。在 Python 中,不同的数据类型是可以互相转换的,通过类型转换函数来实现,下图为常见的类型转换函数:
我们可以使用 int(),将 50.00 转换为 50,也可以使用 float(),将 50 转换为 50.00,具体语句如下:
神农:“嗯嗯,真是太精彩了,变幻无穷!”我们:“和我们一起学 Python 吧!”下面,我们运用 str() 和字符串的+运算符打印出下列内容:神农每天品尝 3 种草药,品尝了 50 天,一共品尝了 150 种草药。
版权声明: 本文为 InfoQ 作者【向阳逐梦】的原创文章。
原文链接:【http://xie.infoq.cn/article/c441ca1323506f8bed78c0672】。文章转载请联系作者。
评论