首页 > 代码库 > Python数据类型

Python数据类型

 

目录
1、字符串
2、布尔类型
3、整数
4、浮点数
5、数字
6、列表
7、元组
8、字典
9、集合

1.字符串

1.1、如何在Python中使用字符串
a、使用单引号(‘)
用单引号括起来表示字符串,例如:
str=‘this is string‘
print (str)

b、使用双引号(")
双引号中的字符串与单引号中的字符串用法完全相同,例如:
str="this is string"
print (str)

c、使用三引号(‘‘‘)
利用三引号,表示多行的字符串,可以在三引号中自由的使用单引号和双引号,例如:
str=‘‘‘this is string
this is python string
this is not java string‘‘‘
print (str)

一般多行注释也可以用‘‘‘ ‘‘‘

1.2、字符串的一些操作

索引值以 0 为开始值,-1 为从末尾的开始位置。

技术分享
str = Runoob
 
print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次
print (str + "TEST") # 连接字符串
View Code

注意:

  • 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
  • 2、字符串可以用+运算符连接在一起,用*运算符重复。
  • 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
  • 4、Python中的字符串不能改变。只能重新赋值,不能修改

2、布尔类型

bool = False

print(int(bool))

bool = True

print(int(bool))

3.整数

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

像大多数语言一样,数值类型的赋值和计算都是很直观的。

内置的 type() 函数可以用来查询变量所指的对象类型。

python2.7:32位:-2^31~2^31-1 64位:-2^63~2^63-1,int超过长度后不会溢出而是从内部变成Long

python3.5:理论上是无限长度

整数类型可以进行加(+)、减(—)、乘(*)、除(/)、取余(%)和幂运算(**),/ 和 //的区别是前者得到的是一个浮点数,后者得到的是一个整数(floor向下取整)

技术分享
a,b = 8,3
c = a/b
c2 = a%b
c3 = a//b
print(a/b:,c,\n,a%b:,c2,\n,a//b:,c3)
a/b: (2.6666666666666665,) 
a%b: 2 
a//b: 2
View Code

4.浮点数

float=2.3

有小数点的有理数#-^^-不清楚,影响不大

5.数字

按理说,python3中把int,float,bool,complex(复数)四种类型统称为数字类型

复数类型用的相对较少,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

可以用内置的type()函数来查看变量所指的具体的类型,每个类型之间可以进行转换,例如str(3),int(‘3‘)

1)、因为python int和字符串是不可变数据类型,这里的int( )和str( )方法只引用了原变量对应的数据,而并不是把原变量的类型修改了。

2)、同样因为整型和字符串都是不可变数据类型,所以所得结果一定要重新赋值之后才能被引用。

6.列表

List列表是 Python 中使用最频繁的数据类型。很重要

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号([])之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

技术分享
list = [ abcd, 786 , 2.23, runoob, 70.2 ]
tinylist = [123, runoob]
 
print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表

打印结果
[abcd, 786, 2.23, runoob, 70.2]
abcd
[786, 2.23]
[2.23, runoob, 70.2]
[123, runoob, 123, runoob]
[abcd, 786, 2.23, runoob, 70.2, 123, runoob]
View Code

List内置了有很多方法,例如append()、pop()等等,本人是新手,怕是多了接受效果有点差,后续会补充。

注意:

  • 1、List写在方括号之间,元素用逗号隔开。
  • 2、和字符串一样,list可以被索引和切片。
  • 3、List可以使用+操作符进行拼接。
  • 4、List中的元素是可以改变的

7.元组

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号(())里,元素之间用逗号隔开。

技术分享
tuple = ( abcd, 786 , 2.23, runoob, 70.2  )
tinytuple = (123, runoob)
 
print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组

打印结果
(abcd, 786, 2.23, runoob, 70.2)
abcd
(786, 2.23)
(2.23, runoob, 70.2)
(123, runoob, 123, runoob)
(abcd, 786, 2.23, runoob, 70.2, 123, runoob)
View Code

其实,可以把字符串看作一种特殊的元组。

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

string、list和tuple都属于sequence(序列)。

注意:

  • 1、与字符串一样,元组的元素不能修改。
  • 2、元组也可以被索引和切片,方法一样。
  • 3、注意构造包含0或1个元素的元组的特殊语法规则。
  • 4、元组也可以使用+操作符进行拼接。

8.字典

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

语法:

info = {
    ‘stu1101‘: "TengLan Wu",
    ‘stu1102‘: "LongZe Luola",
    ‘stu1103‘: "XiaoZe Maliya",
}

字典的特性:

  • dict是无序的
  • key必须是唯一的,so 天生去重

增加

技术分享
>>> info["stu1104"] = "苍井空"
>>> info
{stu1102: LongZe Luola, stu1104: 苍井空, stu1103: XiaoZe Maliya, stu1101: TengLan Wu}
修改
View Code

 

修改

技术分享
>>> info[stu1101] = "武藤兰"
>>> info
{stu1102: LongZe Luola, stu1103: XiaoZe Maliya, stu1101: 武藤兰}
View Code

 

删除

技术分享
>>> info
{stu1102: LongZe Luola, stu1103: XiaoZe Maliya, stu1101: 武藤兰}
>>> info.pop("stu1101") #标准删除姿势
武藤兰
>>> info
{stu1102: LongZe Luola, stu1103: XiaoZe Maliya}
>>> del info[stu1103] #换个姿势删除
>>> info
{stu1102: LongZe Luola}
>>> 
>>> 
>>> 
>>> info = {stu1102: LongZe Luola, stu1103: XiaoZe Maliya}
>>> info
{stu1102: LongZe Luola, stu1103: XiaoZe Maliya} #随机删除
>>> info.popitem()
(stu1102, LongZe Luola)
>>> info
{stu1103: XiaoZe Maliya}
View Code

 

查找

技术分享
>>> info = {stu1102: LongZe Luola, stu1103: XiaoZe Maliya}
>>> 
>>> "stu1102" in info #标准用法
True
>>> info.get("stu1102")  #获取
LongZe Luola
>>> info["stu1102"] #同上,但是看下面
LongZe Luola
>>> info["stu1105"]  #如果一个key不存在,就报错,get不会,不存在只返回None
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: stu1105
View Code

 

另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。

注意:

  • 1、字典是一种映射类型,它的元素是键值对。
  • 2、字典的关键字必须为不可变类型,且不能重复。
  • 3、创建空字典使用 { }

9.集合

集合(set)是一个无序不重复元素的序列。

基本功能是进行成员关系测试删除重复元素

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

技术分享
student = {Tom, Jim, Mary, Tom, Jack, Rose}
 
print(student)   # 输出集合,重复的元素被自动去掉
 
# 成员测试
if(Rose in student) :
    print(Rose 在集合中)
else :
    print(Rose 不在集合中)
 
 
# set可以进行集合运算
a = set(abracadabra)
b = set(alacazam)
 
print(a)
 
print(a - b)     # a和b的差集
 
print(a | b)     # a和b的并集
 
print(a & b)     # a和b的交集
 
print(a ^ b)     # a和b中不同时存在的元素

打印结果
{Mary, Rose, Jim, Tom, Jack}
Rose 在集合中
{c, d, b, r, a}
{b, d, r}
{c, d, l, b, r, m, z, a}
{c, a}
{d, l, b, r, m, z}
View Code
既可以用内置函数处理,也可以用逻辑运算符,等同效果
s.issubset(t) s <= t 测试是否 s 中的每一个元素都在 t 中
s.issuperset(t) s >= t 测试是否 t 中的每一个元素都在 s 中
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素 
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  


每个类型都还有很多不同的方法,先掌握基础的基础,以后会持续更新。。。

 

 

Python数据类型