python数据类型

查找数据a[index]

1. 数字

int整数

定义:age=10 #age=int(10)

用于标识:年龄,等级,身份证号,qq号,个数

float浮点型

定义:salary=3.1 #salary=float(3.1)

用于标识:工资,身高,体重,

2 字符串 str

单引号,多引号,三引号的区别和作用

#多行字符串需要用到三引号

双引号和单引号都是用来定义单行字符串的,那么2者有什么区别呢,举个例子

想把这个句话定义成字符串怎么办?

what's your name

这句话当中有一个单引号了,如果我们在用单引号把他包起来,他就会报错,因此,我们需要在外面用双引号包裹起来

res = "what's your name"

#在python当中数字可以进行加法,那么字符串可以吗?让我大声的告诉你,也可以

a = '你'

b = '好'

a + b

#结果为'你好'

#注意,字符串只能和字符串相加,不能和别的数据类型相加

了解:

2.1 count统计字符个数

a='hello world'

res=a.count('o')

print(res)

2

2.2 index从左往右查找字符的索引,找不到报错(从左往右,从0开始计数)

a = 'hello world'

res=a.index('o')

print(res)

3

2.3 rindex从右往左查找字符的索引空格和符号都算一个字符,(0,6)代表索引范围

a = 'hello world'

res=a.rindex('o')

print(res)

7

a = 'hello world'

res=a.rindex('o',0,6)

print(res)

4

2.4 istitle 判断字符串是否是抬头,抬头是每个单词都以大写字母开头,中文不能作为抬头

a = 'hello World'

res=a.istitle()

print(res)

False

a = 'Hello World'

res=a.istitle()

print(res)

True

2.5 isspace判断字符串里是否全是空格,

b=' '

res=b.isspace()

print(res)

True

b=' 1'

res=b.isspace()

print(res)

False

b=''

res=b.isspace()

print(res)

False

2.6 isdigit判断是否为整数

b='qw'

res=b.isdigit()

print(res)

False

b='123'

res=b.isdigit()

print(res)

True

2.7 endswith判断是否以...结尾;startswith判断字符串的开头

a = 'hello world'

res=a.endswith('ld')

print(res)

True

2.8 查找字符串的索引,find能找到就显示索引位置,找不到显示-1

a = 'hello world'

res=a.find('12')

print(res)

-1

a = 'hello world'0

res=a.find('wo')

print(res)

6

2.9 isalnum判断是否是(数字)或者是(字母)或者是(字母和数字的任意组合)

a = 'helloworld'

res=a.isalnum()

print(res)

True

a = 'hellow123orld'

res=a.isalnum()

print(res)

True

a = 'hello world'

res=a.isalnum()

print(res)

False

2.10 isalpha判断是否是纯字母

a = 'hello world'

res=a.isalpha()

print(res)

False

2.11 islower判断是否是小写;isupper判断是否是大写

a = 'hEllo world'

res=a.islower()

print(res)

False

2.12 upper把小写字母变大写;lower把大写字母变成小写

a = 'hello world'

res=a.upper()

print(res)

HELLO WORLD

2.13 title把字符串变成抬头

a = 'hello world'

res=a.title()

print(res)

Hello World

必须掌握

1.split从左往右把字符串切分成列表

a = '192.168.888.111'

res=a.split('.')

print(res)

['192', '168', '888', '111']

a = '192.168.888.111'

res=a.split('.',1)

print(res)

['192', '168.888.111']

2. rsplit从右往左把字符串切分成列表

a = '192.168.888.111'

res=a.rsplit('.',2)

print(res)

['192.168', '888', '111']

3. encode转码;decode解码

a = '192.168.888.111'

res=a.encode('utf-8')

print(res)

b'192.168.888.111' #b是bit类型

a = '李白'

res=a.encode('utf-8') # gbk

print(res)

print(res.decode('utf-8'))

b'xe6x9dx8exe7x99xbd'

李白

4. format格式化输出

a='李白'

b=18

res='my name is {},my age is {}'.format(a,b)

res='my name is {1},my age is {0}'.format(b,a) #按照排序对应

res='my name is {x},my age is {y};my small name is {y}'.format(x=a,y=b)

print(res)

my name is 李白,my age is 18;my small name is 18

5. join把可迭代对象变成字符串,括号里可以是字典,列表,元组,字符串

res=''.join(['a','b','c'])

print(res)

abc

a='abc'

b=a.join(['x','y','z'])

print(b)

xabcyabcz

6. strip是去除左右两边的字符,默认为空格

a='----===lzb-===---'

print(a)

res=a.strip('-')

print(res)

----===lzb-===---

===lzb-===

rstrip去除右边的字符,默认为空格;lstrip去除左边的字符,默认为空格

a='===lzb==='

print(a)

res=a.rstrip('=')

print(res)

===lzb===

===lzb

7. replace替换括号里的字符,并可以指定替换次数

a='1111222223333344444'

res=a.replace('1','a',1)

print(res)

a111222223333344444

8. %s,%d,%f占位符

res = 'my name is %s, my age is %d' % ('疯子',29)

print(res)

my name is 疯子, my age is 29

#这里要注意%d只可以接收数字,%s可以接收数字也可以接收字符串

a=185.54754

b='%.2f'%(a)

print(b)

185.55

3. 列表[] list

在[]内用逗号分隔,可以存放任意个任意类型的值比如(数字,字符串,列表,元组都OK),#用于标识存储多个值,比如一个班级的学生有多个,一个人的兴趣爱好也有多个

>>> test = [1,2,'a',[1,2],{'a','b'}]

>>> test

[1, 2, 'a', [1, 2], {'b', 'a'}]

>>>

#利用下标取列表里的值

>>> test[0]

1

>>>

了解:

1. index返回元素的索引,没有查找到就报错

a= ['c','a','b','d']

res=a.index('a')

print(res)

1

2. count统计元素个数

a= ['c','a','b','d','a','a']

res=a.count('a')

print(res)

3

3. insert在指定位置插入元素

a= ['c','a','b','d','a','a']

a.insert(1,'250')

print(a)

['c', '250', 'a', 'b', 'd', 'a', 'a']

4. reverse倒序,反转

a= ['c','a','b','d','a','a']

a.reverse()

print(a)

['a', 'a', 'd', 'b', 'a', 'c']

5. sort排序(以第一个字节排序,第一个字节相同,以第二个字节为准)

a= ['c','a','b','d','a','a','3','310','120']

a.sort()

print(a)

['120', '3', '310', 'a', 'a', 'a', 'b', 'c', 'd']

6. copy拷贝列表

a= ['c','a','b','d','a','a']

b=a.copy()

print(b)

['c', 'a', 'b', 'd', 'a', 'a']

7. clear清空列表

a= ['c','a','b','d','a','a']

a.clear()

print(a)

[]

8. pop剪切指定元素

a= ['c','a','b','d','a','a']

b=a.pop(1) #1代表索引

print(b)

print(a)

a

['c', 'b', 'd', 'a', 'a']

必须掌握:

1. append追加到列表末尾

a= ['c','a','b','d','a','a','3','1','2']

a.append('李白')

print(a)

['c', 'a', 'b', 'd', 'a', 'a', '3', '1', '2', '李白']

2. remove删除指定元素(从左到右依次删除)

a= ['c','a','b','d','a','a']

a.remove('a')

a.remove('a')

print(a)

['c', 'b', 'd', 'a']

3. extend可以传入可迭代对象,以单个元素为个体添加到列表当中

a= ['c','a','b','d','a','a']

a.extend('lzb')

print(a)

['c', 'a', 'b', 'd', 'a', 'a', 'l', 'z', 'b']

4.

a= ['c','a','b','d','a','a']

b=['a','b','c','d']

res=a+b

print(res)

['c', 'a', 'b', 'd', 'a', 'a', 'a', 'b', 'c', 'd']

4. 元组 () tuple

元组跟列表一样都可以存取多个值,只不过元组大部分是用来读的,元组的元素不能修改。

t1=(1,2,3,[1,2,3])

如果元组里只有一个元素,必须加一个逗号(,)

t1 = ([1,2,3],)

print(type(t1))

1. count计数

a=('a','b','c','b','d')

res=a.count('b')

print(res)

2

2. index取出值对应的索引

a=('a','b','c','b','d')

res=a.index('c')

print(res)

2

5. 字典{} dict

#既然有了列表可以存取多个值,为什么还要有字典呢?举个例子你就明白了

比如在这个列表中有2个值一个28用来表示年纪,一个187用来标识身高,但是并没有一个说明,那个元素对应的是年纪,那个元素对应的是身高

info = [28,187]

#因此,字典就可以解决这个问题,key定义成字符串,value可以定义任意数据类型

info = {'age':28,'high':187}

如果{}里为空,则数据类型为字典

了解:

1. copy拷贝字典

dic={'name':'李白','age':18,'high':180}

a=dic.copy()

print(a)

{'name': '李白', 'age': 18, 'high': 180}

2. pop通过key剪切value

dic={'name':'李白','age':18,'high':180}

a=dic.pop('name')

print(dic)

print(a)

{'age': 18, 'high': 180}

李白

3. 清除一个字典

dic={'name':'李白','age':18,'high':180}

dic.clear()

print(dic)

{}

4. setdefault设置默认值(如果字典里有,则保持不变,如果没有,就增加该键值对)

dic={'name':'李白','age':18,'high':180}

dic.pop('name')

dic.setdefault('name','杜甫')

print(dic)

{'age': 18, 'high': 180, 'name': '杜甫'}

5. fromkeys快速定义一个空字典()

res={}.fromkeys(['name','age','high'],1) # 1是给每个key赋予的value,不写默认为None,只能给一个字典中的所有key赋予一个value

print(res)

{'name': 1, 'age': 1, 'high': 1}

6. popitem剪切键值对(从右往左依次剪切)

dic={'name':'李白','age':18,'high':180}

res1=dic.popitem()

res2=dic.popitem()

print(res1)

print(res2)

print(dic)

('high', 180)

('age', 18)

{'name': '李白'}

必须掌握的:

1. 列出所有values

dic={'name':'李白','age':18,'high':180}

res=dic.values()

print(res)

dict_values(['李白', 18, 180])

2. 列出所有的key

dic={'name':'李白','age':18,'high':180}

res=dic.keys()

print(res)

dict_keys(['name', 'age', 'high'])

3. items列出所有的key,value

dic={'name':'李白','age':18,'high':180}

res=dic.items()

print(res)

dict_items([('name', '李白'), ('age', 18), ('high', 180)])

4. get通过key取value,没取到值返回None,不可以赋值

dic={'name':'李白','age':18,'high':180}

res=dic.get('age')

print(res)

18

5. ['name']可以取value,没取到会报错,可以赋值

dic={'name':'李白','age':18,'high':180}

res=dic['age']

print(res)

res1=dic.pop('name')

print(dic)

res2=dic['name']='杜甫'

print(dic)

18

{'age': 18, 'high': 180}

{'age': 18, 'high': 180, 'name': '杜甫'}

6. update把两个字典合并成一个字典,如果key一样修改原value

dic={'name':'李白','age':18,'high':180}

dic.update({'n':'帅'})

print(dic)

dic.update({'name':'杜甫'})

print(dic)

{'name': '李白', 'age': 18, 'high': 180, 'n': '帅'}

{'name': '杜甫', 'age': 18, 'high': 180, 'n': '帅'}

a='name'

b='李白'

c={a:b}

print(c)

{'name': '李白'}

6. 布尔

#布尔类型就是True和False

>>> a=100

>>> b=200

>>>

>>> a > b #不成立就是False,也就是假

False

>>> a < b #成立就是True, 也就是真

True

谨记:0,None,空都为假,其余为真

7. 集合set {}

集合的元素不能重复,无顺序,无索引

1. intersection求交集

a={1,2,3,4,5,6,7,0}

b={1,3,8,9}

res=a.intersection(b)

print(res)

{1, 3}

2. difference求差集(以前面的集合为标准)

a={1,2,3,4,5,6,7,0}

b={1,3,8,9}

res=b.difference(a)

print(res)

{8, 9}

a={1,2,3,4,5,6,7,0}

b={1,3,8,9}

res=a.difference(b)

print(res)

3. union求并集

a={1,2,3,4,5,6,7,0}

b={1,3,8,9}

res=a.union(b)

print(res)

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

4. issubset判断是否为子集(前面的是否是后面的子集)

a={1,2,3,4,5,6,7,0}

b={1,2,3,4}

res=b.issubset(a)

print(res)

True

8. 引用计数和垃圾回收机制

对一个变量值的引用次数叫做引用计数

垃圾回收机制

1.程序执行完毕

2.引用计数为0被回收

9. 切片:列出指定范围的数据

顾头不顾尾

a=[1,2,3,4,5,6,7,0]

b=[1,2,3,4]

c='hello,world'

dic={'name':'李白','age':18,'high':180}

res=a[1:3]

print(res)

res1=a[-3:-1]

print(res1)

res3=dic.get('name')

print(res3)

res4=c[2:6]

print(res4)

[2, 3]

[6, 7]

李白

llo,

2. 打印出索引为1往右(包括1)

c='hello,world'

res=c[1:]

print(res)

3. 打印出索引小于4的字符(不包括4)

c='hello,world'

res=c[:4]

print(res)

Hell

2为步长

a=[1,2,3,4,5,6,7,0]

res=a[1:8:2]

print(res)

[2, 4, 6, 0]

10. 转换数据类型

列表:list []

集合:set {}

字符串:str ''

整数:int

浮点数float

元组:tuple ()

字典:dict {}

a=[1,2,3]

b=set(a)

print(type(b))

<class 'set'>

原文地址:https://www.cnblogs.com/liangzb310/p/11026989.html