2.1 数据类型

  数据类型是指数据在计算机内部的表达和存储形式。根据性质和用途,数据被划分为多种不同的类型。Python基本数据类型包括数值型、字符串型、逻辑型等。此外,Python还有列表、元组、字典和集合等复合类型。

2.1.1 数值类型

  数值型数据可以分为整型、实型和复数型。

整型数据

  Python语言的整型数据即是有符号整数,不带小数点。在Python 3.x版本中,只要内存许可,整型数据的值可以扩展到任意长度,整数的取值范围几乎包括了全部整数,这给大数据的计算带来便利。Python语言中,整型常数有十进制、二进制、八进制、十六进制4种。不同进制的整型常量是根据前缀进行区分,因此,书写时,应注意前缀的正确性。

  • 十进制整数没有前缀,如120、0、-375等;
  • 二进制整数以0b或0B(数字0加字母b或B)开头,后接数字0,1的整数,如0b1001,其值等于十进制数9;
  • 八进制整数以0o或0O(数字0加小写字母o或大写字母O)开头,后接数字0~7的整数,如0o127,其值等于十进制数87;
  • 十六进制整数以0x或0X开头,后接0~9和A~F(或用小写字母)字符的整数,如0xabc,其值等于十进制数2748。

实型数据

  实型也称为浮点型,Python语言中,实数只采用十进制。它有两种表示形式:十进制形式和指数形式。

  • 十进制数形式由数码0~9和小数点组成,如345.0、12.2、0.0等。实型数据允许小数点后面没有任何数字,表示小数部分为0,如23.表示23.0。
  • 指数形式即由科学计数法表示的浮点数,由十进制数加阶码标志E或e组成。e之前为数字部分,之后为指数部分,且两部分必须同时出现,指数必须为整数。如45e-5,9.34e2等,分别代表45x10-5、9.34x102,而e4,3.4e3.4、34e等是非法的浮点型常量。

复数型数据

  在科学计算中经常会遇到复数运算问题。例如,数学中求方程的复根、电工学中交流电路的计算、自动控制系统中传递函数的计算等都用到复数运算。Python提供了复数类型,其数据形式为a+bJ。其中,a是复数的实部,b是复数的虚部,J表示-1的平方根(虚数单位)。J也可以写成小写j,注意不是数学上的i。示例代码:

>>>x = 12 + 34J
>>>x
(12 + 34j)

  通过x.real和x.imag来分别获取复数x的实部和虚部,结果都是浮点型。接着上面的语句继续执行以下语句。示例代码:

>>>x.real
12.0
>>>x.imag
34.0

2.1.2 字符串类型

  字符串类型型数据分为标准字符串和转义字符串。

标准字符串

  在Python中定义一个标准字符串可以使用英文半角的单引号、双引号和三引号(三个单引号或三个双引号)。例如,’abc’、”12345678”、”“”Life is short,use python!”“”都是字符串。示例代码:

>>>str1 = 'abc'
>>>str2 = "12345678"
>>>str3 = """Life is short,use python!"""

  此外,三引号括起来的可以是多行字符串。示例代码:

>>>str4 = """
>>>Life is short,
>>>use Python
>>>"""
>>># 三个单引号和三个双引号效果等价
>>>str5 = '''
>>>Life is short,
>>>use Python
>>>'''

转义字符

  转义字符是一种特殊的字符常量。转义字符以反斜杠“\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义字符”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。常用的转义字符其意义如下表所示。

转义字符转义字符的意义
\n回车换行
\t横向跳到下一个制表位置
\反斜线符()
\’单引号符
\”双引号符

转义字符用法示例代码:

>>>print("**ab*c\t*de***\ttg**\n")
**ab*c  *de***  tg**
>>>print("h\nn***k")
h
n***k

如果不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串。示例代码:

>>>print('C:\some\name')        # '\n'发生转义
C:\some
ame
>>>print(r'C:\some\name')        # '\n'不发生转义
C:\some\name

2.1.3 逻辑型

  逻辑型,又称布尔型(bool),它只有True(真)和False(假)两个值。值为真或假的表达式称为布尔表达式,Python的布尔表达式包括关系运算表达式和逻辑运算表达式。它们通常用来在程序中表示条件,条件满足时结果为True,不满足时结果为False。示例代码:

>>>x = 10
>>>x > x + 1 
False
>>>x - 1 < x
True

2.1.4 复合数据类型

  数值类型、布尔类型数据不可再分解为其他类型,而列表、元组、字典和集合类型的数据包含多个相互关联的数据元素,所以称它们为复合数据类型。字符串其实也是一种复合数据,其元素是单个字符。

字符串序列

  列表、元组和字符串是有顺序的数据元素的集合体,称为序列(sequence)。序列具有顺序存取的特征,可以通过各数据元素在序列中的位置编号(索引)来访问数据元素。示例代码:

>>>str1 = 'This is an apple.'
>>>print(str1[0])        #输出字符串第1个字符,索引号以0开始
T
>>>print(str1[8:13])        #输出字符串第9到13个字符
an ap

  字典和集合属于无顺序的数据集合体,数据元素没有特定的排列顺序,因此不能像序列那样通过位置编号来访问数据元素。

列表

  列表(list)是用来处理一组有序项目的数据结构,可以完成大多数复合数据结构的操作。列表元素写在中括号之间、用逗号分隔,可以是数字、单个字符、字符串,也可以嵌套列表。示例代码:

>>>list1 = [1, 2, 3, 4, 5]
>>>list2 = ['a', 'abc', 4.5]
>>>list3 = [a, b, 2, [3, 4]]

与字符串不同,列表中的元素是可以改变的。示例代码:

>>>a = [1, 2, 3, 4, 5, 6]
>>>a[0] = 9
>>>a
[9, 2, 3, 4, 5, 6]

元组

  元组(tuple)是写在小括号之间、用逗号隔开的元素序列。元组中的元素类型也可以不相同。元组与列表类似,不同之处在于元组的元素不能修改,相当于只读列表。示例代码:

>>>tuple1 = ('sunny', 23.3, 22, 'tom')
>>>tuple1
('sunny', 23.3, 22, 'tom')
>>>tuple1[2]        #输出元组的第3个元素
22

  要注意一些特殊元组的表示方法。空的圆括号表示空元组。当元组只有一个元素时,必须以逗号结尾。示例代码:

>>>()   #空元组
>>>(9,)    #含有一个元素的元组
>>>(9)    #没有逗号结尾,表示整数9

  任何一组以逗号分隔的对象,当省略括号时,默认为元组。示例代码:

>>>2, 3, 4
>>>s = 2, 3, 4
>>>s
(2, 3, 4)

  与字符串类似,元组中的元素不能二次赋值。作为序列,列表与元组的主要区别表现在,列表元素用中括号[]括起来,且元素的个数及元素的值可以改变。元组元素用小括号()括起来,且不可以改变。其实,字符串可以看成是一种特殊的元组,而元组可以看成是只读的列表。

字典

  字典(dictionary)是写在大括号之间、用逗号分隔的元素集合,其元素由关键字(key,也称为键)、冒号(:)和关键字对应的值(value)组成,通过关键字来存取的字典中的元素。
  字典是无序的对象集合,是一种映射类型(mapping type),它是一个无序的“关键字:值”对的集合。在同一个字典中,关键字必须使用不可变类型,且满足唯一性。示例代码:

>>>dict = {'name':'Tom', 'id':12345, 'dept':'marketing'}
>>>dict
{'dept': 'marketing', 'id': 12345, 'name': 'Tom'}
>>>dict['name']    #输出关键字为name的值
'Tom'
>>>dict['salary'] = 4600    #在字典中添加一个“键:值”对元素
>>>dict
{'dept': 'marketing', 'id': 12345, 'name': 'Tom', 'salary': 4600}

集合

  集合(set)是一个无序且包含不重复元素的数据类型。可以使用大括号或者set()函数创建集合类型,注意:创建一个空集合必须用set()而不是{},因为{}用来表示一个空字典。示例代码:

>>>student = {'Tom', 'Jim', 'Mike', 'Lily', 'Tom', 'tom', 'Lucy'}
#无序输出set集合中的所有元素,重复的元素被自动去掉,且区分大小写
>>>student
{'Jim', 'Lily', 'Lucy', 'Mike', 'Tom', 'tom'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值