Python 的数据类型主要分为以下三种:
-
数值类型:
int
,float
,bool
-
字符串类型:
str
-
容器类型:
list
,dict
,tuple
数值数据类型
整数
我们在前一篇变量介绍的部分中,曾经声明过一个变量 x ,并且让 x = 1
, x 就是一个整数( integer)。如果要获取变量的数据类型,可以使用 type()
这个函数来查询。下面来试着打印出 x 这个变量以及 x 所属于的数据类型:
scss
x = 1
print(x)
print(type(x))
执行结果如下:
打印出 type(x)
会得到 x 的类型 int
,表示 x 是一个整数。
浮点数
上面 x = 1
中 x 是一个整数,如果改写成 x = 1.5
,此时 x 就不是整数了,而是浮点数。
scss
x = 1.5
print(x)
print(type(x))
你也可以自己试试看把 x 设成 3.14 或是 1.732 ,会发现到它们的数据类型都是 float
。
布尔值
在 Python 布尔类型只有两种取值 : True
还有 False
,下面我们来写一个示例:
python
a = True
print(a)
print(type(a))
运行上面的代码后,执行结果如下:
打印出 type(a)后 ,会看到 'bool'
,表示 a 的数据类型是 bool
,也就是布尔类型。你也可以试着把 a = True
改成 a = False
,所打印出的 type(a) 也会相同,因为他们都是布尔值。
布尔值通常是一个条件判断的结果,示例如下 :
ini
a = 1
b = 2
print(a==b)
其中 a==b
是一个比较运算,会返回 a 是否等于 b。因为 a 的值是 1、b 的值是 2,所以 a 不会等于 b。 a==b
的结果就是 False
。
字符串类型
字符串是以单引号 ( '
)或双引号( "
)所包起来的 文本 ,由一连串 Unicode 字符所组成。例如:
bash
song = "Hello, Goodbye"
print(song)
print(type(song))
执行的结果如下:
没有规定一定使用单引号或是双引号来定义字符串,但如果字符串中本身就包含单引号或是双引号,就可以使用另一种引号以做区分。
比如想要打印出这个字符串:"Bohemian Rhapsody" is a song by the British rock band Queen.
bash
print(""Bohemian Rhapsody" is a song by the British rock band Queen.")
其中 "Bohemian Rhapsody"
这部分使用 "
括起来,会使 Python 认为要打印出的字符串为 ""(空字符串)、以及 " is a song by the British rock band Queen."
,因而出现错误。
此时比较好的做法就是改用单引号来表示字符串。
swift
print('"Bohemian Rhapsody" is a song by the British rock band Queen.')
改成这样就会打印出想要的结果了
字符串的运算
字符串处理是 Python 的强项之一。 在 Python 中,支持许多字符串的运算方式。以下介绍四种很常见的功能:
字符串相加
+
这个运算符号能够将两个字符串连接起来,例如:
ini
str1 = "Lucy in the sky"
str2 = " with diamonds"
print(str1 + str2)
运算的结果如下:
重复打印出字符串
利用 *
可以重复字符串的内容。前面在讲 print
时有提到这个功能。只需要输入字符串与 *
再加上想要重复打印出的字符串即可。例如:
python
str = "bug "
print(str*3)
执行的结果:
计算字符串长度
利用 len()
这个函数会返回字符串的长度,例如:
python
str = "Python"
print(str)
print(len(str))
执行的结果会如下,len()
返回了6,代表字符串 str 中总共有六个字符。
取出部分字符串
利用中括号 []
可以取出字符串的部份内容。 跟生活中我们在数数字时从 1 开始数不同,字符串的索引值(index)是从 0 开始的, str[4]
代表要取出 str 字符串里面的 第 5 个字符 "o"
。
ini
str = "Python"
str[4]
如果想要取出某一个范围的字符串时,就在括号中设定开始与结束的位置,也就是左边界与右边界。
值得注意的是,字符串只会取到所设定结束位置的前一个字符,并不会包含右边界的本身。所以 str[1:4]
就是从 str 字符串中的第二个字符取到第四个字符,不会包含 str[4]
本身。
ini
str = "Python"
str[1:4]
str[4]
可以看到, str[1:4]
是取第二到第四个字符,也就是 index 1~3 所代表的字符,并不会包含到 str[4]
这个字符。
类型转换
我们可以将一个值从一种类型转变为另外一种类型,这样的过程就叫做类型转换。
如果想要将一个类型为浮点数的值转变为整数的数据类型,我们会使用 int()
这个函数来作转换。 以下是将 float
转成 int
的结果:
scss
floatNum = 55.0
intNum = int(floatNum)
print(floatNum)
print(intNum)
print(type(floatNum))
print(type(intNum))
而如果是想要将一个字符串转为整数呢?
scss
stringNum = "55"
intNum = int(stringNum)
print(stringNum)
print(intNum)
print(type(stringNum))
print(type(intNum))
如果是想要将 55.55
转换成整数呢?可以自己尝试在 Jupyter Notebook 上转换看看。 转换成整数过后,小数点会直接被舍去掉,变成 55
。
如果要转换其它数据类型,可以试试 str()
、 float()
、 chr()
这些函数,会将原本的值分别转换为字符串、浮点数以及字符。
值得注意的是,如果本来的值就无法这样转换 (例如想要把字符串转换成整数),就会出现 Value Error。
现在我们学会了 Python 中的数值、字符串与字符的数据类型,以及不同类型之间的转换方式,下一篇将会介绍程序语言很重要的精髓之一,条件判断,可以让你的程序根据不同的状况来执行不同结果。