查找数据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'>