Python数据类型专题

1.整型

范围:python的整数类型没有长度限制,支持任意大的数字。

进制表示:
Untitled.png

2.浮点型

范围:浮点数存在范围的限制,范围在-e308到e308之间。

两种表示方法:十进制表示方法和科学计数法表示

  1. a = 2e4 #表示2x10^4,输出结果为20000.0

3. 复数型

二元有序实数对组成,可以对复数对象使用 .real 和 .imag 方法查看实部和虚部

a = 5 + 6j
b = complex(5,6)
print(a.real)
print(a.imag)
print(b.real)
print(a.imag)
'''
输出结果为
5.0
6.0
5.0
6.0
'''

4. 布尔型

只有两个值,True或者False

b1 = True
b2 = False
print(b1, b2)
n = None
print(n)

'''
运行结果为:
True False
None
'''

5.字符串

字符串是由字符组成的序列,单引号和双引号的作用相同

字符串的运算:连接、复制

a = 'I can learn PYTHON'
b = "You can do it as well"
c = "!"

print(a+c+b+c)#字符串进行连接
print(a+c*2)#连接+复制

'''
I can learn PYTHON!You can do it as well!
I can learn PYTHON!!
'''

当字符串中本身含有单引号或双引号或转义字符时,可以考虑转义字符或按原格式输出:

a = "I'm good at programming !\n"   #避免单引号与双引号的混用
b = 'I\'m good at programming !\n'    #利用转义字符
c = r"\r means enter !\n"              #字符串前加r或R表示不再转义,按照原格式输出

print(a,b,c)

'''
输出为
I'm good at programming !
 I'm good at programming !
 \r means enter !\n
'''

字符串的切片:利用索引截取字符串中的部分字符

索引分为正序和逆序;切片使用[ ]获取字符串中的对应字符,有三个参数.其中

[ ]第一个参数表示字符的起始位置(从0开始编号),第二个参数表示结束位置(不含),第三个参数步长默认为1,可不写.当步长为负数时表示倒着数。

a = 'I can learn PYTHON'

print(a[:])
print(a[:5])
print(a[6:])
print(a[0:1])
print(a[0:10:3])
print(a[-6:])
print(a[-1:-7:-1])

'''
输出结果为
I can learn PYTHON
I can
learn PYTHON
I
Ial
PYTHON
NOHTYP
'''

专题二 Python的数据类型 - 图2

字符串相关函数与方法:

  • len(): 确定字符串长度
  • chr(): 将ASCII编码转化为对应的字符
  • title():将单词的首字母大写
  • upper()、lower():分别将单词的全部字母大写或者小写
  • lstrip()、rstrip()、strip():分别删除字符串开头、末尾、两端的空白字符

以下为组合数据类型

6. 列表list

[ ] 、[1,2,3,4]、[‘1’,’2’,’3’,’4’],…

python的列表是有序的,列表中的值称为元素或者项,元素的序号又叫做索引(从0开始)

列表的长度没有限制,列表使用中括号表示,使用逗号分割其中的元素。

对于列表的操作可以分为创建列表、添加元素、获取元素,删除元素

1.创建列表

直接进行赋值即可创建一个列表

2.向列表中添加元素

使用append()在列表最后进行元素添加

使用insert( , ) 在指定位置插入元素,两个参数,第一个参数表示插入的位置,第二个参数表示插入的元素。(python的列表是有序的

names = ['den','cen','gen']

names.append('hen')#在末尾加入'hen'元素
print(names)

names.insert(1,'ken')#在1号索引位置插入'ken'元素
print(names)

'''
['den', 'cen', 'gen', 'hen']
['den', 'ken', 'cen', 'gen', 'hen']
'''

3.从列表中获取元素

引用待获取元素的索引序号即可获取对应元素

names = ['den','cen','gen']
print(names[2])

for name in names:
    print(name,end=' ')

'''
gen
den cen gen den
'''

4.从列表中删除元素

三种删除方法,remove()、del、pop()

remove():删除列表中首次出现的某个元素

del:永久删除列表中指定位置的元素

pop():暂时删除列表末尾的元素。相当于取出末尾的元素?也可以在括号中指定索引号,取出对应的元素。

names = ['den','cen','gen','den']

names.remove('den')#移除首次出现的特定元素
print(names)

last_name = names.pop()#取出列表中的最后一个元素
print(last_name)
print(names)

del names[1]#删除列表中索引为1的元素
print(names)

'''
['cen', 'gen', 'den']
den
['cen', 'gen']
['cen']
'''

5.组织列表

count( ):返回某个元素在列表中出现的次数

extend( ):将另一列表的所有元素合并到现有列表的末尾

index( ):返回列表中首次出现的某元素的索引号

revere( ):永久反转列表元素的排列顺序,无参

sort( )、sorted( ):分别永久、暂时将列表升序排列

clear( ):清空列表,与del功能类似

num1 = [2,3,1,2,2,1]
num2 = [4,3,3,7,0,0]

count = num1.count(1)
print(count)

num1.extend(num2)
print(num1)

index1 = num1.index(7)
print(index1)

print(num2)
num2.reverse()
print(num2)

print(sorted(num1))   #暂时排序,不是永久改变
print(num1)

num1.sort()           #永久排序,后续不再变动
print(num1)

'''
2
[2, 3, 1, 2, 2, 1, 4, 3, 3, 7, 0, 0]
9
[4, 3, 3, 7, 0, 0]
[0, 0, 7, 3, 3, 4]
[0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 7]
[2, 3, 1, 2, 2, 1, 4, 3, 3, 7, 0, 0]
[0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 7]

'''

6.列表切片

列表切片的使用方法与字符串切片使用方法类似。

检查列表中是否含有某个元素,可以使用in检查

使用len( )查询列表的长度

num1 = [2,3,1,2,2,1]

num1.sort()
print(num1[2:5])  #输出第3-6位的元素
print(3 in num1)  #检查元素3是否在列表中

'''
[2, 2, 2]
True
'''

7. 元组tuple

()、(1,2,3)、(’1’,’2’,’3’,’4’)

元组与列表非常相似,不同之处在于元组的元素不能修改(修改、删除、排列元素

1.创建和访问元组

圆括号、逗号隔开

使用索引序号进行访问

2.更新、删除元组元素

可以对两个元组使用+连接,以及del语句删除整个元组

tuple1 = (45,26,78,33)
tuple2 = (78,42,16,61)

print(tuple1 + tuple2)  #将两个元组进行连接
del tuple1
print(tuple1)

'''
(45, 26, 78, 33, 78, 42, 16, 61)
Traceback (most recent call last):
  File "D:\eclipse-workspace\PythonLearning\Python&CNotion\bajinzhi.py", line 6, in <module>
    print(tuple1)
NameError: name 'tuple1' is not defined
'''

3.元组的内置函数

len( ):获取元组的长度

max( )、min( ):找出元组的最大值和最小值

tuple( ):将列表转换为元组

num1 = [2,3,1,2,2,1]
tuple1 = tuple(num1)
print(len(tuple1))
print(max(tuple1),min(tuple1))

'''
6
3 1
'''

8. 集合set

{‘1’,’2’,’3’,’4}、{[1,2,3,4}

集合不同于列表和元组类型,集合存储的元素是无序且不能重复的。元素间没有顺序,集合不能比较和排序。(无序表)

集合的元素类型只能是不可变数据

a = 45
b = 65
num = [a,b]#列表的元素类型可以为变量
print(num)
a = 12
print(num)
'''
[45, 65]
[45, 65]
'''

1.集合的创建

创建集合可以直接使用大括号进行创建或者使用set()命令

#coding:gbk
set1 = set(['den','cen','gen'])   #使用set()创建
set2 = {'den','cen','fen','den'}  #直接创建,重复元素只算一次
print(set1,set2,sep = '\n')

'''
{'den', 'cen', 'gen'}
{'den', 'cen', 'fen'}
'''

2. 访问元素

集合是无序的,因此不能直接通过索引获取某个元素,只能对集合所有元素进行遍历:

set1 = {'den','cen','fen','den'} 
for name in set1:
    print(name,end = ',')

'''
fen,cen,den,
'''

3.集合类型的操作符

集合有四种操作符:& 交集(共同元素)、 | 并集(所有元素) 、- 差集(差) 、^ 异或集(非共同元素)

#coding:gbk
# 在对集合做运算时,不会影响原来的集合,而是返回一个运算结果
# 创建两个集合
s = {1,2,3,4,5}
s2 = {3,4,5,6,7}

# & 交集运算
print(s & s2) # {3, 4, 5}

# | 并集运算
print( s | s2 )# {1,2,3,4,5,6,7}

# - 差集
print(s - s2) # {1, 2}

# ^ 异或集 获取只在一个集合中出现的元素
print(s ^ s2) # {1, 2, 6, 7}

'''
{3, 4, 5}
{1, 2, 3, 4, 5, 6, 7}
{1, 2}
{1, 2, 6, 7}
'''

4.集合使用的方法

集合使用的方法

#coding:gbk
# 在对集合做运算时,不会影响原来的集合,而是返回一个运算结果
# 创建两个集合
s1 = {1,2,3,4,5}
s2 = {3,4,5,6,7}

# & 交集运算
print(s1.intersection(s2))
print(s1 & s2) # {3, 4, 5}

# | 并集运算
print(s1.union(s2))
print( s1 | s2 )

# - 差集
print(s1.difference(s2))
print(s1 - s2) # {1, 2}

# ^ 异或集 获取只在一个集合中出现的元素
print(s1 ^ s2) # {1, 2, 6, 7}

'''
{3, 4, 5}
{3, 4, 5}
{1, 2, 3, 4, 5, 6, 7}
{1, 2, 3, 4, 5, 6, 7}
{1, 2}
{1, 2}
{1, 2, 6, 7}
'''

9. 字典

{ ‘ShuXue’:59,’YuWen’:89,’Zhenzhi’:56}

字典是键值对的无序集合。字典中的每个元素都有两个属性,键和值,属于一种映射关系

字典中的键不可重复,值可以重复

1.字典的创建

直接使用{}进行创建,dict()

dict1 = dict(((1,'A'),(2,'B')))        #先值后键
dict2 = {1:'A',2:'B'}                  #先键后值

print(dict1,dict2,sep = '\n')

'''
{1: 'A', 2: 'B'}
{1: 'A', 2: 'B'}
'''

2.访问字典的键和值

字典名加对应的键

dict1 = dict(((1,'A'),(2,'B')))   
print(dict1[1])

'''
A
'''

3.更新字典

字典是一种动态结构,可随时在其中修改、添加、删除键值对

dict = {'A':'89-100','B':'70-89','C':'60-79'}
dict['A'] = '90-100'   #更改键值对
dict['D'] = '0-60'     #添加键值对
#del dict['B']          #删除键值对,后续调用会报错  
print(dict['A'],dict['B'],dict['D'])
'''
90-100 70-89 0-60
'''

4.遍历字典

先声明两个变量,分别存储字典对应的键和值

dict = {'A':'90-100','B':'70-89','C':'60-79'}
dict['D'] = '0-60'   
for k,v in dict.items():
    print('\nkey:'+k)
    print('value:'+v)

'''
key:A
value:90-100

key:B
value:70-89

key:C
value:60-79

key:D
value:0-60
'''

5. 字典的操作方法

clear():清空字典所有的键值对

get():返回指定键的值

items()、keys()、values():分别对应字典的键值对、键、值(返回值为列表类型,若想按顺序排列可以使用sorted()进行排序)

update()、copy():相加、拷贝

dict1 = {'A':'90-100','B':'70-89','C':'60-79'}
dict2 = {'D':'0-60'}  
dict3 = dict1.copy()   #拷贝字典
dict1.update(dict2)    #合并两个字典
print(dict2.get('D'))  #和直接取值好像没什么区别
print(dict1,dict3,sep = '\n')
print(dict1.keys(),dict1.values(),sep = '\n')
'''
0-60
{'A': '90-100', 'B': '70-89', 'C': '60-79', 'D': '0-60'}
{'A': '90-100', 'B': '70-89', 'C': '60-79'}
dict_keys(['A', 'B', 'C', 'D'])
dict_values(['90-100', '70-89', '60-79', '0-60'])
'''

10. range 数值列表

使用range()快速生成一系列的数字,结合list()快速生成数字列表

mons = list(range(1,13))
for mon in mons:
    print('M'+str(mon)+'\n')

'''
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
M11
M12
'''
mons = []
for num in range(1,13):
    mons.append(num)
print(mons)

'''
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
'''