基本数据类型
摘要
Python的数据类型分为可变数据类型和不变数据类型。
不变数据类型
- 数字(Number)
- 元组(Tuple)
- 字符串(String)
可变数据类型
- 列表(List)
- 字典 (Dictionary)
- 集合(Set)
1. 数字
Python支持三种不用的数值类型:
- 整形(int):Python3 整型是没有限制大小的,所以 Python3 没有 Python2 的 Long 类型。
- 浮点型(float):浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
- 复数(complex):复数由实数部分和虚数部分构成,可以用
a + bj
或者complex(a,b)
表示, 复数的实部a和虚部b都是浮点型。
# 一、整形
# 1.十进制
num1 = 20
num2 = -1000000
# 2.十六进制
num3 = 0xB0F
# 3.八进制
num4 = 0o32
# 4.二进制
num5 = 0b1010101
# 二、浮点型
num6 = 3.1415926
num7 = 3.1415e10
num8 = 6.53E-3
# 三、复数
num9 = 3 + 5j
num10 = 5 + 6J
num11 = complex(5, 6)
数字类型转换:
- int(x)
- float(x)
- complex(x)
- complex(x, y)
2.字符串
创建字符串:
# "" 和 '' 都可以
str1 = "hello"
str2 = 'world'
访问字符串:
- python中没有字符的变量,所以通过索引访问得到的还是字符串
- 变量名[头下标 : 尾下标]:不包括尾下标所指的字符串
- 从前往后索引(长度为6为例):0,1,2,3,4,5
- 从后往前索引(长度为6为例):-5,-4,-3,-2,-1
str1 = "helloworld"
print("str1[0]:", str1[0])
print("str1[-1]:", str1[-1])
print("str1[0:3]:", str1[0:3])
print("str1[0:-1]:", str1[0:-1])
print("str1[2:]:", str1[2:])
# 结果
'''
str1[0]: h
str1[-1]: d
str1[0:3]: hel
str1[0:-1]: helloworl
str1[2:]: lloworld
'''
其他运算符:
- +:字符串连接
- *:重复输出字符串
- in:如果字符串中包含给定的字符返回 True
- not in: 如果字符串中不包含给定的字符返回 True
- r(R一样的):取消转义效果
- %:格式化字符
str1 = "hello"
str2 = "world"
print("str1+str2:", str1 + str2)
print("str1*3:", str1*3)
print("el in str1:", "el" in str1)
print("el not in str2:", "el" not in str2)
print("转义:", "hello\nworld")
print("取消转义:", r"hello\nworld")
print("今天是%s, 天气%s。"%("星期三", "晴天"))
'''
结果:
str1+str2: helloworld
str1*3: hellohellohello
el in str1: True
el not in str2: True
转义: hello
world
取消转义: hello\nworld
今天是星期三, 天气晴天。
'''
3. 列表
序列是 Python 中最基本的数据结构。序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。列表的数据项不需要具有相同的类型。
创建列表:
list1 = ["hello", 233, 5.8]
访问列表中的值:通过索引访问,索引方式和字符串的方式相同。
list1 = ["red", "yello", "blue"]
print("list1[0]:", list1[0])
print("list1[0:1]:", list1[0:1])
print("list1[0:-1]:", list1[0:-1])
print("list1[1:]:", list1[1:])
print("list1[-1]:", list1[-1])
'''
结果:
list1[0]: red
list1[0:1]: ['red']
list1[0:-1]: ['red', 'yello']
list1[1:]: ['yello', 'blue']
list1[-1]: blue
'''
列表有着和字符串相同的运算符:+,*,in,not in
。这里就不赘述了。
4. 元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。字符串就是特殊的元组。
元组使用小括号 ( ),列表使用方括号 [ ]。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
# 创建多个元素的元组
tuple1 = ("a", "c", 12, 5.6)
# 创建空元组
tuple2 = ()
# 创建一个元素的元组
tuple3 = ("hello",) # 一定要加个逗号
元组的访问和列表类同就不赘述了。
5.字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中。
dic1 = {"name" : "张三", "age" : 78, "address" : "火星"}
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
访问字典中的值:
- 通过 key 来访问对应的 value
dic1 = {"name" : "张三", "age" : 78, "address" : "火星"}
print("姓名:", dic1["name"])
print("年龄:", dic1["age"])
print("住址:", dic1["address"])
'''
结果:
姓名: 张三
年龄: 78
住址: 火星
'''
6.集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
set1 = {"Mon", "Tue", "Wen", "Thus", "Fri"}
集合的运算:
- a - b:集合a中包含而集合b中不包含的元素
- a | b:集合a或b中包含的所有元素
- a & b:集合a和b中都包含了的元素
- a ^ b:不同时包含于a和b的元素
a = set('abracadabra')
b = set('alacazam')
print("a - b:", a - b)
print("a | b:", a | b)
print("a & b:", a & b)
print("a ^ b:", a ^ b)
'''
结果:
a - b: {'r', 'd', 'b'}
a | b: {'z', 'r', 'd', 'b', 'l', 'a', 'm', 'c'}
a & b: {'a', 'c'}
a ^ b: {'d', 'r', 'b', 'l', 'z', 'm'}
'''
注意
各个数据类型有各自内置的方法,例如增删改查的方法,这里就暂时略过。