数据类型
类型是编程语言对数据的一种划分
Python的数据类型
- 数字类型
- 字符串类型
- 元组类型
- 列表类型
- 文件类型
- 字典类型
数字类型
- 整数类型
- 浮点数类型
- 复数类型
整数类型
与数学中的整数的概念一致,但是没有取值范围的限制
pow(x,y)
表示计算 xy,pow(x,y)
可嵌套使用
浮点数类型
带有小数点及小数的数字,数值范围存在限制,与计算机系统有关
在Python的IDE中,输入以下代码,能看到浮点数的信息
>>>import sys
>>>sys.float_info
结果如下:
# sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
可以看到数据范围为[10308, -10308],精度到小数点后53位。对于绝绝绝大多数情况都不会出现问题。
所以一般也可以认为浮点数是没有限制的。
浮点数可以用科学记数法表示(e
或E
),为<a>e<b>=a*10^b
复数类型
虚部用j
或J
表示,z=a+bj
z.real
获得实数部分,z.imag
获得虚数部分。
数字类型之间的关系
三种类型为扩展关系:整数 -> 浮点数 -> 复数。
不同数字类型之间可以混合运算,结果类型为最宽类型
数字类型转换的函数
int()
:转换为整数float()
:转换为浮点数complex()
:转换为复数
float
转换为int
时,小数部分会直接去掉。
次宽类型向更宽类型转换时,新加的部分的值为0
不允许从complex
直接向float
和int
转换,转换由z.real
和z.imag
实现
数字类型的判断
type(x)
,返回x的数据类型(不仅限于数字类型)
字符串类型
用双引号“”
或单引号‘’
括起来的一个或多个字符
字符串可以保存在变量中,也可以单独存在
输出特定的字符,要用到转义符\
字符串索引
字符串是一个字符序列:字符串开始的索引为0
,往后依次增加到L-1
。同时允许反向索引,最右侧索引为-1
。
可以通过索引来访问字符串中的特定位置
也可以通过两个索引值来确定一个位置范围,返回该范围内的子串。<string>[<start>:<end>]
从start
开始,到end-1
结束。
>>>greet='Hello John'
>>>print(greet[2])
l
>>>x=8
>>>print(greet[x-2])
J
>>>greet[0:3]
'Hel'
字符串连接
字符串可以通过+
或*
进行连接
- 加法操作(
+
):将两个字符串连接为一个新的字符串
>>>"pine"+"apple"
'pineapple'
- 乘法操作(
*
):字符串本身重复连接
>>>3 * "pine"
pinepinepine
字符串长度
len()
来返回字符串长度
转为字符串str类型
str()
函数:可以将大多数数据类型转为string
类型
遍历字符串
for <var> in <string>
元组类型
元组是包含多个元素的类型,元素之间用逗号分隔
元组特点
- 元组中元素可以是不同类型
- 可以通过索引(索引区间)来访问元组中的元素(们)
- 元组定义后不能更改也不能删除
- 可以通过
+
和*
进行运算
元组定义后不能更改,说明使用元组会更安全。如果要求灵活,可以列表类型来代替元组类型。
列表类型
列表list
是有序的元素集合。
列表特点
- 元素可以为不同类型
- 通过索引访问元素
- 列表可以修改
列表操作
字符串可以通过split()
函数,来拆分成一个列表
>>>"python is an excellent language".split()
['python', 'is', 'an', 'excellent', 'language']
字典类型
字典的基础
字典类型是Python特有的高级数据结构,是针对非序列集合而提供的一种数据结构。
字典是一个键值对的集合,该集合以键为索引。
字典类型与序列类型的区别:
- 存取和访问的方式
- 键的类型:
序列类型只能由数字作为键;字典类型可以用其他对象做为键(数字、字符串、元组等) - 排列方式:
序列保持元素间的顺序;字典是无序排列。 - 映射值的方式
序列类型通过地址映射到值;字典的键直接映射到值。
字典的操作
语法:
# 字典的定义
dictionaryName["key"] = "value"
dictionaryName = {"key1": "value1", "key2", "value2" }
# 字典的访问:通过键来访问
dictionaryName["key"]
# 删除字典的某一项
del dictionaryName["key"]
# 字典的遍历
# 遍历字典的键key
for key in dictionaryName.keys():
print(key)
# 遍历字典的值value
for value in dictionaryName.values():
print(value)
# 遍历字典的项
for item in dictionaryName.items():
print(item)
# 遍历字典的键值对
for item,value in adict.items():
print(item, value)
# 判断键是否在字典中: in, not in. 返回值为布尔类型
"key" in dictionaryName
字典的标准操作符:
-, <, >, <=, >=, ==, !=, and, or, not
字典的函数:
字典的操作示例:
字典的应用
应用1:统计词频
.strip()
去掉开头结尾的空格,.lower()
将大写字符变为小写。
应用2:号码簿