数据类型


一,什么是数据类型

int:用于计算

bool:用于判断

str:存储少量数据,进行操作

list:存储大量数据,进行操作

元组:也叫只读列表,不能修改

dict:字典

集合:

二,int

常用的方法

bit_length()
查看

三,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())#字符串是否由数字组成

 三,数组(列表)

列表的操作

数组是有序的,可以通过索引定位元素,可以切片。操作方法和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)
结果:啥都没有。这是一道面试题