Python语言的数据类型

本章介绍Python语言的基本数据类型(数值、字符串、布尔类型)以及Python所特有的列表、元组、字典等数据类型。

3.1 Python语言的基本数据类型

Python语言的基本数据类型包括数值类型、布尔类型、字符串类型,其中数值类型又包括整数类型和浮点数类型。

类型名称 实例
整数 -100
浮点数 3.1416
字符串 'hello'
布尔型 True, False

<center>表3-1 Python语言的基本数据类型</center>

3.1.1 数值类型

数值类型包括整型、浮点型、长整型和复数型,这里只介绍我们经常使用的整型和浮点型。

  • 整型(Integers)
    例如,我们可以进行整型数据的加减乘除、整除、取余以及幂运算等,如下代码所示(#后面的文字为Python的注释):
#加法
2 + 2
4
#减法
10 - 3
7
#乘法
3 * 4
12
#除法
12 / 5
2.4
#整除
12 // 5
2
#取余
14 % 5
4
#幂运算
2 ** 3
8

整型数字的最大最小值:
在 32 位系统中,一个整型 4 个字节,最小值 -2,147,483,648,最大值 2,147,483,647
在 64 位系统中,一个整型 8 个字节,最小值 -9,223,372,036,854,775,808,最大值 9,223,372,036,854,775,807
我们可以用sys包中的maxsize来查看本机所能表示的最大整数。

import sys
sys.maxsize
9223372036854775807
  • 浮点数(Floating Point Numbers)
    浮点数的运算和整数类似。
#浮点数减法
3.4 - 3.2
0.19999999999999973

注意看 3.4 - 3.2 的结果并不是我们预期的0.2,这是因为浮点数本身储存方式引起的,浮点数本身会存在一点误差。

#浮点数除法
12.0 / 5.0
2.4
#浮点数幂运算
2.5 ** 3.5
24.705294220065465

同样的,我们可以用sys包中float_info.max查看本机浮点数的最大值。

sys.float_info.max
1.7976931348623157e+308

除了上述标准的算术运算之外,还有一些常用的运算可以用于数值类型的数据,例如四舍五入、求绝对值等。这些运算可以通过Python内置的函数来完成。

#绝对值函数abs
print(abs(-2.75))
#取整函数int
print(int(2.75))
#四舍五入函数round
print(round(2.75,1))
2.75
2
2.8

3.1.2 变量赋值

Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
Python使用<变量名>=<表达式>的方式对变量进行赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
在 Python 里,变量名标识符由字母、数字、下划线组成,但不能以数字开头且区分大小写。
例如,下面的代码将两个数值分别赋值给a、b两个变量,并把相加的结果赋值给变量c并打印。

a = 10
b = 20
c = a + b
print(c)
30

也可以为多个变量同时赋值,例如:

a = b = 10
print(a,b)
10 10

a,b = 10,20
print(a,b)
10 20

3.1.3 布尔类型(Boolean Data Type)

布尔型可以看成特殊的二值变量,其取值为True和False,例如:

flag = True
print(flag)
True

可以用布尔表达式构建布尔型变量,例如:

x = 5
flag = x > 1 & x <= 5
print(flag)
True

常用的比较符号包括:
<, >, <=, >=, ==, !=
分别代表小于、大于、小于等于、大于等于、等于、不等于。

3.1.4 字符串类型

字符串是字符构成的一个序列。Python中的字符串可以是单引号或者双引号包围的一个字符序列,起始和末尾的引号必须是一致的(要么两个双引号,要么两个单引号)。使用双引号定义字符串时,单引号可以出现在字符串中,但双引号不能;同样的,使用单引号定义字符串时,双引号可以是字符串的一部分,但单引号不可以。以下是一些字符串的例子,用print函数打印出来。

print("Hello,world!")
print("She isn't a student")
print('我说:"早安,先生"')
Hello,world!
She isn't a student
我说:"早安,先生"

变量也可以赋值为字符串,例如:

s = "Hello,Python"
print(s)
Hello,Python

前面说过,字符串是字符组成的一个序列,这个序列中每个字符的位置可以使用数字0,1,2,3...来标识,这就是字符的索引。字符串中的第一个字符对应索引0而不是1,那么最后一个字符对应的索引就是字符串长度(字符串中字符的个数)减1。在Python中也可以用-1来表示字符串中最后一个字符的索引,用-2表示倒数第二个字符的索引,依此类推。在Python中我们用中括号中包含数字来表示字符串的索引,例如:

s = "Hello,Python"
print(s[0],s[6],s[-1])
H P n

截取字符串中某一段连续的字符,称为子字符串或字符串的切片。Python中字符串的切片操作采用n:m形式的索引,表示字符串从索引n开始到索引m(不包括m)的一个子序列,省略n表示从头开始,省略m表示直到末尾。例如:

s = "Hello,Python"
print(s[2:8])
print(s[-5:-2])
print(s[2:])
print(s[:8])
llo,Py
yth
llo,Python
Hello,Py

字符串之间可以使用加法和乘法运算,只是和数值类型的加法和乘法不同。字符串的加法表示字符串之间的连接,而字符串和一个数字n相乘则表示将该字符串重复n次,例如下面的代码:

s = "Hello," + "world!"
print(s)
print(s*3)
Hello,world!
Hello,world!Hello,world!Hello,world!

Python是一种面向对象的语言,面向对象的语言中一个必不可少的元素就是方法,而字符串是对象的一种,所以有很多可用的方法。

跟很多语言一样,Python使用以下形式来调用方法:

对象.方法(参数)
s = "Hello," + "world!"
#求字符串的长度
print(len(s))
#将字符串全部转为大写
print(s.upper())
#将字符串全部转为小写
print(s.lower())
12
HELLO,WORLD!
hello,world!

3.1.5 类型转换

Python中简单的数据转换主要在整型、浮点型和字符串之间进行,采用Python的内置函数int、float和str完成,如下代码所示:

#浮点型数据取整
a = int(123.45)
print(a)
#字符串转换成数值
b = float("123.45")
print(b)
#数值转换成字符串
c = str(123.45)
print(c)
#输出以上三个变量的类型
print(type(a),type(b),type(c))
123
123.45
123.45
<class 'int'> <class 'float'> <class 'str'>

3.2 列表类型


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容