10.Python基础篇-数据类型
一,什么是数据类型
int:用于计算
bool:用于判断
str:存储少量数据,进行操作
list:存储大量数据,进行操作
元组:也叫只读列表,不能修改
dict:字典
集合:
二,int
常用的方法
bit_length()
bit_length():返回一个整数的二进制表示中不包括符号位的最小位数(即最少多少位二进制数能表示这个整数)
int_num = 3 print(int_num.bit_length()) 结果: 2
三,str
3.1索引与切片
通过索引定位元素
s = 'fasfwfvs' s1 = s[0]#取变量s中,第0个元素,并赋值给新的变量s1。第一个的下标为0。 print(s1) 结果:f
切片
语法:变量[起始索引:终止索引:步长] 示例 s = 'fsdfewqefvcxzvc' s1 = s[0:2]#把变量s的值,从第0个到第2个取出来赋值给s1这个过程就叫切片 特征: 顾头不顾尾。包括了起始索引,但是不包括终止索引 各种场景应用 从后面开始数:s[-1]#取s的最后一个 取全部:s[0:]#取s的第一个至最后一个。也可以这么写:s[:] 跳着取--步长 s1 = s[0:6:2]#取首,尾,然后每隔两个也要取
3.2常用方法
1.首字母大写:方法capitalize()
s = 'alexSir'
s1 = s.capitalize()#capitalize()方法:首字母大写
print(s1)
结果:Alexsir
2.全部变成大写:方法upper()
s = 'alexSir'
s2 = s.upper()#将变量s,全部变成大写赋值给s2
print(s2)
结果:ALEXSIR
3.全部变成小写:方法lower()
s = 'alexSir'
s3 = s.lower()#将变量s,全部变成小写,并赋值给变量s3
print(s3)
结果:alexsir
在不区分大小写的需求中,如输入验证码不区分大小写。可以将验证码全部变成大写,再将用户输入的验证码全部变成大写。同理全部变成小写也可以。
4.大小写翻转:方法swapcase()
s = 'alexSir'
s4 = s.swapcase()#把变量s,中的大写变成小写,小写变成大写,赋值给s4
print(s4)
结果:ALEXsIR
5.title()方法
源码解释:每个单词首字母都以大写开头,所有剩余的大小写字符都使用小写。
如何区分两个单词呢?
单词和单词之间都是有空格间隔开的,被隔开的单词首字母都会变成大写。其实不光空格,所有的特殊符号,和数字都会将单词隔开。
6.将字符串居中,空白填充:方法center()
s = 'alexSir'
#center()方法需要接受两个参数:宽度,和填充物。其中宽度是必填,设置为20;填充物非必填,也设置一下,就设置为:“-”
s4 = s.center(20,'-')
print(s4)
结果:------alexSir-------
7.公共方法len():统计长度。不止用于字符串
只统计多少字符,不是统计字节。一个汉字长度也是1.
s = 'alexSir'
s4 = len(s)#把s的长度算一下,赋值给s4
print(s4)
结果:7
8.校验一个字符串,是否在某个位置:方法endswich()
s = 'alexSir'
s4 = s.endswith('ex',2,4)#方法接收三个参数:校验内容是什么,从哪开头,从哪结束。内容是必填
print(s4)
结果:True
9.方法find(),通过元素索引(下标),找不到返回-1
s = 'alexSir'
s4 = s.find('S')#通过find方法在变量s中寻找'S',将'S'所在的位置(索引,下标)赋值给s4
print(s4)
结果:4
index()方法和find()方法基本一样,区别只有一个:找不到元素会报错。
10.方法strip(),默认删除前后空格
rstrip():删除右边空格
lstrip():删除左边空格
name = 'zhangsan'
name1 = input('输入你的名字').strip()#如果前后有空格,就把空格全部删除
if name1 == name:
print('登录成功')
结果:
输入你的名字 zhangsan
登录成功
可以删除指定的元素,给strip传个值即可。
s = '*sfaf@dsacxz%' s1 = s.strip('*@%') print(s1) 结果:sfaf@dsacxz 结论:可以将前后指定的元素删除,但是中间不能删除。
11.方法count(),统计某个指定元素有几个
s = 'fdsafxcbzxz' s1 = s.count('f')#统计s中有几个f,结果赋值给s1 print(s1) 结果:2
12.方法split() ,将字符串拆分,并转为列表
s = 'abc def ghi' s1 = s.split()#默认按照空格拆分,将拆分结果存储为列表,赋值给s1变量 a = 'abc;def;ghi' a1 = a.split(';')#按照';'将a拆分为列表 print(s1) print(a1) 结果; ['abc', 'def', 'ghi'] ['abc', 'def', 'ghi']
13.replace()方法,将xx替换成xx,默认全部替换
s = '送回家哦头都没洗什么回家相机奥卡福' s1 = s.replace('回家','go home',1)#将回家替换为go home,只替换一个 print(s1) 结果: 送go home哦头都没洗什么回家相机奥卡福
14.is系列
name = 'zhangsan123' print(name.isalnum())#字符串是否由字母或者数字组成 print(name.isalpha())#字符串是否字母组成 print(name.isdigit())#字符串是否由数字组成
四,bytes (字节序列)
bytes用于存储二进制数据。
与str的区别:
五,数组(列表)
列表的操作
数组是有序的,可以通过索引定位元素,可以切片。操作方法和str一样。
列表增加元素
append()末尾增加元素
如何使用 li = ['第一个','第二个'] li.append('第三个') print(li) 结果:['第一个', '第二个', '第三个']
insert()按照指定位置插入元素
li = ['第一个','第二个'] li.insert(1,'第1.5个') print(li) 结果: ['第一个', '第1.5个', '第二个']
extend()迭代增加
可迭代对象:int类型不属于可迭代的
li = ['第一个','第二个'] li.extend('emmm...') print(li) 结果: ['第一个', '第二个', 'e', 'm', 'm', 'm', '.', '.', '.']
列表删除元素的各种方法
pop()按照索引
pop方法有返回值,会返回删除的元素。默认删除最后一个元素。
li = ['第一个','第二个'] li1 = li.pop()#默认删除了最后一个元素,并将删除的元素赋值给li1 print(li,li1) 结果; ['第一个'] 第二个
remove(),按照元素删除
remove方法,可以以元素具体的值删除,但是没有返回值。
li = ['第一个','第二个'] li.remove('第一个') print(li) 结果: ['第二个']
clear()清空列表
li = ['第一个','第二个'] li.clear() print(li) 结果: []
del()删除列表
li = ['第一个','第二个'] del li print(li) 因为li这个变量已经被删除了,不存在了。所以print(li)会飘红
del还可以切片删除
li = ['第一个','第二个'] del li[0:1] print(li) 结果:['第二个']
列表修改元素
找到索引重新赋值即可
li = ['第一个','第二个'] li[0] = '第1个' print(li) 结果:['第1个', '第二个']
切片修改
li = ['第一个','第二个','第三个'] li[0:2] = '第1个','第2个' print(li) 结果:['第1个', '第2个', '第三个']
列表查找元素
遍历,查找列表中每个元素
li = ['第一个','第二个','第三个'] for i in li: print(i) 结果:第一个 第二个 第三个
根据索引切片查
li = [2,1,3,4,7,1,3] print(li[0:4]) 结果;[2, 1, 3, 4]
列表嵌套
li = ['sdfas','fdsafs',[1,2,3]] li[-1][0] = 2 print(li) 结果:['sdfas', 'fdsafs', [2, 2, 3]]
公共方法
查看列表长度:len()
li = ['第一个','第二个','第三个'] print(len(li))
查看某个值出现的次数:count()
li = ['第一个','第二个','第三个','第一个'] print(li.count('第一个')) 结果:2
查看某个值对应的索引,支持切片:index()
li = ['第一个','第二个','第三个','第一个'] print(li.index('第三个',0,-1)) 结果:2
列表反转.reverse()
顺序颠倒
列表数字排序sort()
sort()方法中接收一个reverse的参数,默认false即正序。True则为倒序
li = [2,1,3,4,7,1,3] li.sort(reverse = True)#倒序排列 print(li) 结果:[7, 4, 3, 3, 2, 1, 1]
六,元组
含义:只读列表,可遍历,可切片。儿子不可改,孙子可能可以改。其他操作和方法和列表一样。
join()方法,列表转字符串
li = ['sfd','掌声','123'] s = '---'.join(li)#li需要是可迭代对象 print(s)
结果:sfd---掌声---123
range()
含义:可以理解成一个列表,里面装的是[0,1,2,3...]
支持切片,只是写法变了;支持加入步长
for i in range(10,0,-2): print(i) 结果: 10 8 6 4 2 for i in range(0,10,2): print(i) 结果: 0 2 4 6 8 for i in range(0,10,-2): print(i) 结果:啥都没有。这是一道面试题