目录
python3的六个标准数据类型
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionaries(字典)
Set(集合)
Numbers(数字)
Python3支持int(整型),float(浮点型),bool(布尔型),complex(复数)。
注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
判断类型可以用type(变量)来判断,也可以用isinstance()来判断
isinstance()和type()的区别
type()不会认为子类是一种父类类型
isinstance()会认为子类是一种父类类型
>>> class A:
... pass
...
>>> class B(A):
... pass
...
>>> isinstance(A(), A)
True
>>> type(A()) == A
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False
数值运算
print(5+4)#加法
print(4.4-3)#减法 精度会损失,可以用四舍五入或者乘以10的方法处理
print(2*4)#乘法
print(2/4)# 除法
print(2//4)#整除
print(17%3)#取余
print(2**5)#乘方
运行结果
PS F:\学习\python\测试> & C:/Users/Python311/python.exe f:/学习/python/测试/test2.py
9
1.4000000000000004
8
0.5
0
2
32
PS F:\学习\python\测试>
注意:1,python可以同时给多个值赋值例如,a,b=1,3
2,一个变量可以通过赋值指向不同类型的对象
3,在混合计算时,python会把整型换成浮点数
String(字符串)
字符串可以用+运算符串连接在一起,或者用*运算符重复
print('hello'+'world','python'*3)
结果为:helloworld pythonpythonpython
Python 中的字符串有两种索引方式,第一种是从左往右,从 0 开始依次增加;第二种是从右往左,从 -1 开始依次减少。
还可以对字符串进行切片,获取一段子串。用冒号分隔两个索引,形式为变量[头下标:尾下标]。
截取的范围是前闭后开的(头下标取,尾下标不取),并且两个索引都可以省略:
word='python'
print(word[0],word[5])
print(word[-1],word[-6])
print(word[2:4])
print(word[:])
print(word[2:])
运算结果为
p n
n p
th
python
thon
注意:
- 1、反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。
- 2、字符串可以用 + 运算符连接在一起,用 * 运算符重复。
- 3、Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
- 4、Python 中的字符串不能改变。
- 5、没有单独的字符类型,一个字符就是长度为 1 的字符串。
List(列表)
列表是写在方括号之间、用逗号分隔开的元素列表。列表中元素的类型可以不相同:
a = ['him', 25, 100, 'her']
print(a)
['him', 25, 100, 'her']
和字符串一样,列表同样可以被索引和切片,列表被切片后返回一个包含所需元素的新列表。
与字符串不同的是,列表的元素是可以改变的
a=[1,2,3,'dd','4',5,6]
a[0]=7
print(a)
a[2:5]=[9,10,11]
print(a)
运行结果为:
[7, 2, 3, 'dd', '4', 5, 6]
[7, 2, 9, 10, 11, 5, 6]
列表支持串联操作,使用+操作符
a=[1,2,3,'dd','4',5,6]
a+=[7,8,9]
print(a)
运行结果为:
[1, 2, 3, 'dd', '4', 5, 6, 7, 8, 9]
注意:
- 1、List 写在方括号之间,元素用逗号隔开。
- 2、和字符串一样,List 可以被索引和切片。
- 3、List 可以使用 + 操作符进行拼接。
- 4、List 中的元素是可以改变的。
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号里,元素之间用逗号隔开。
元组中的元素类型也可以不相同:
a=(1,2,3,'dd',5,4,4)
print(a)
print(type(a))
print(len(a))
b=(6,7,8)
c=a+b
print(c)
运行结果为:
(1, 2, 3, 'dd', 5, 4, 4)
<class 'tuple'>
7
(1, 2, 3, 'dd', 5, 4, 4, 6, 7, 8)
如果只有一个元素写成tup1=(1)这样是有问题的,这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
string、list 和 tuple 都属于 sequence(序列)。
注意:
- 1、与字符串一样,元组的元素不能修改。
- 2、元组也可以被索引和切片,方法都是一样的。
- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
- 4、元组也可以使用 + 操作符进行拼接。
Sets(集合)
集合(set)是一个无序不重复元素的集。
基本功能是进行成员关系测试和消除重复元素。
可以使用大括号 或者 set() 函数创建 set 集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。
a={1,2,3,3,3,'dd',9}
print(a)
print(type(a))
b=set()
print(b)
print(type(b))
运行结果为:
{1, 2, 3, 9, 'dd'}
<class 'set'>
set()
<class 'set'>
set()函数有两用方式使用
1,无参数,在这种情况,set()会返回一个空set
2,参数为可迭代对象:在这种情况下,set()将会返回一个包含可迭代对象所有唯一元素的set。可迭代对象可以是一个列表,元组,集合,和字符串。
a=set([1,1,1,2,2,2,3,3])
print(a)
运行结果为
{1, 2, 3}
set运算
s={'a','b',1,2,3,4}
print('a' in s) #判断元素是否在集合中
a=set('abcdefghi')
b=set('bcd')
print(a-b)#a和b的差集
print(a|b)#a和b的并集
print(a&b)#a和b的交集
print(a^b)#a和b的异或集
运行结果为:
True
{'h', 'e', 'i', 'g', 'f', 'a'}
{'h', 'e', 'b', 'i', 'g', 'd', 'c', 'f', 'a'}
{'b', 'c', 'd'}
{'h', 'e', 'i', 'g', 'f', 'a'}
Dictionaries(字典)
字典(dictionary)是 Python 中另一个非常有用的内置数据类型。
字典是一种映射类型(mapping type),它是一个无序的键值对(key-value)集合。
关键字(key)必须使用不可变类型,也就是说list和包含可变类型的 tuple 不能做关键字。
在同一个字典中,关键字(key)必须互不相同。
dic={'a':1,'b':2,'c':3}
print(type(dic))
print(dic['a'])#通过键值查询
dic['a']=4#修改键值对
print(dic)
del dic['a']#删除键值对
print(dic)
dic['d']=5#添加键值对
print(dic)
print(dic.keys())#获取键
print(dic.values())#获取值
print(dic.items())#获取键值对
print(dic.get('b'))#通过键值查询
print(dic.get('e'))#通过键值查询,如果键不存在,则返回None
运行结果:
<class 'dict'>
1
{'a': 4, 'b': 2, 'c': 3}
{'b': 2, 'c': 3}
{'b': 2, 'c': 3, 'd': 5}
dict_keys(['b', 'c', 'd'])
dict_values([2, 3, 5])
dict_items([('b', 2), ('c', 3), ('d', 5)])
2
None
构造函数 dict() 直接从键值对 sequence 中构建字典,当然也可以进行推导,如下:
dic={}
print(type(dic))
print(dic)
cc=dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
print(cc)
a={x:x**2 for x in (2,3,4)}
print(a)
bb=dict(spa=3322,sdgds=23423,fsdf=234233)
print(bb)
运行结果为:
<class 'dict'>
{}
{'sape': 4139, 'guido': 4127, 'jack': 4098}
{2: 4, 3: 9, 4: 16}
{'spa': 3322, 'sdgds': 23423, 'fsdf': 234233}
另外,字典类型也有一些内置的函数,例如 clear()、keys()、values() 等。
注意:
- 1、字典是一种映射类型,它的元素是键值对。
- 2、字典的关键字必须为不可变类型,且不能重复。
- 3、创建空字典使用 { }。