1.1 什么是数据?
x = 10, 10是我们要存储的数据
1.2 为何数据要分不同的类型
数据是用来表示状态的,不同的状态就应该用不同类型的数据去表示。
1.3 数据类型
数字
布尔值
列表
元组
字典
集合
2. 基础数据类型
2.1 数字int
数字主要用于计算用的,使用方法并不是很多,就记住一种就可以:
#bit_length(),当十进制用二进制表示时,最少使用的位数
num = 11
data = num.bit_length()
print(data)
# 结果:4
2.2 布尔值bool
布尔值是判断条件的正确与否,只有两个结果:
False
2.3 字符串str
2.3.1 字符串的索引
索引即下表,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
string = "ABCDEFGHIJK"
print(string[0])
print(string[3])
print(string[5])
print(string[7])
执行结果为:
A
D
F
H
2.3.2 字符串的切片
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)
string = "ABCDEFGHIJK"
print(string[0:3])
print(string[2:5])
print(string[0:]) #默认到最后
print(string[0:-1]) #-1是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到最后的元素
print(string[0:5:2]) #加步长
print(string[5:0:-2]) #反向切片,步长为负值
执行结果为:
ABC
CDE
ABCDEFGHIJK
ABCDEFGHIJ
ACE
FDB
2.4 字符串常用方法
2.4.1 capitalize():
作用:首字母大写
name = "yang wei"
print(name.capitalize())
执行结果为:
Yang wei
2.4.2 swapcase()
作用:大小写翻转
name = "yang wei"
print(name.swapcase())
执行结果为:
YANG WEI
2.4.3 title()
作用:每个单词首字母大写
name = "yang wei"
print(name.title())
执行结果为:
Yang Wei
2.4.4 center()
作用:在总长度为X的字符串中,内容居中,空白处填充
s = "center"
ret = s.center(20, "*")
print(ret)
执行结果为:
*******center*******
2.4.5 expandtabs()
作用:
补全空格。
默认将一个tab键变成8个空格。
如果tab前面的字符长度不足8个,则补足8个。
如果有两个tab,tab前面的字符串长度超过8个不足16个,则补足16个。
以此类推,每个tab补足8个。
s = "\tabc"
ret = s.expandtabs()
print(ret)
执行结果为:
abc
2.4.6 startswith()
作用:判断是否以···开头
s = "abc"
ret = s.startswith("a")
print(ret)
执行结果为:
True
2.4.7 endswith()
作用:判断是否以···结尾
s = "abc"
ret = s.endswith("c")
print(ret)
执行结果为:
True
2.4.8 find()——推荐使用
作用:寻找字符串中的元素是否存在
s = "abc"
ret = s.find("b")
print(ret)
如果能找到,则返回元素的索引,如果找不到返回-1
执行结果为:
1
2.4.9 index()——不推荐使用
作用:返回找到的元素的索引,找不到则报错。
s = "abc"
ret = s.index("a")
print(ret)
执行结果为:
0
因为在使用index查找元素索引时,找不到内容则会报错,因此不推荐使用。
2.4.10 split()
作用:以X分割字符串,最终形成一个列表,此列表中不含有这个分割的元素。
s = "a|b|c"
ret = s.split("|")
print(ret)
执行结果为:
['a', 'b', 'c']
2.4.11 format()的三种用法
作用:格式化输出
print("{}{}{}".format("a", "b", "c"))
print("{1}{0}{2}".format("a", "b", "c"))
print("{a}{b}{c}".format(a="a1", b="b1", c="c1"))
执行结果为:
abc
bac
a1b1c1
2.4.12 strip()
作用:移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
name = "*yang**"
print(name.strip("*")) #去掉左右两边的字符
print(name.lstrip("*")) #去掉左边的字符
print(name.rstrip("*")) #去掉右边的字符
执行结果为:
yang
yang**
*yang
2.4.13 replace()
作用:替换
s = "abc"
ret = s.replace("a", "d")
print(ret)
执行结果为:
dbc
2.4.14 is系列
name = "yang123"
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
执行结果为:
True
False
False
2.5 元组tuple
元组被称为只读劣币哦啊,即数据可以被查询,但不能被修改,所以字符串的切片操作同样适用于元组。例如:(1, 2, 3) ("a", "b", "c")
2.6 列表list
列表是Python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,它是以[]括起来,每个元素以逗号隔开,而且它里面可以存放各种数据类型,比如:
li = ["yang", 123, True, (1,2,3), [a, b, c], {name: "yang"}]
列表相比于字符串,不仅可以存储不同的数据类型,而且可以存储大量数据,32为Python的限制是536870912, 64位Python的限制是1152921504606846975个元素。而且列表是有序的,有索引值,可切片,方便取值。
2.6.1 增加
lst = [1, "a", "b", 2, 3, "a"]
lst.insert(0, 55) #按照索引添加
print(lst)
lst.append("aaa") #增加到最后
print(lst)
lst.append([1, 2, 3]) #增加到最后
print(lst)
lst.extend(["q", "w", "e", "r"]) #迭代的增加
print(lst)
lst.extend("abc")
print(lst)
执行结果为:
[55, 1, 'a', 'b', 2, 3, 'a']
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa']
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3]]
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'q', 'w', 'e', 'r']
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'q', 'w', 'e', 'r', 'a', 'b', 'c']
2.6.2 删除
lst = [1, "a", "b", 2, 3, "a"]
print(lst.pop(1))
print(lst)
del lst[1:3]
print(lst)
lst.remove("a")
print(lst)
lst.clear()
print(lst)
执行结果为:
a
[1, 'b', 2, 3, 'a']
[1, 3, 'a']
[1, 3]
[]
2.6.3 修改
lst = [1, "a", "b", 2, 3, "a"]
lst[1] = "abc"
print(lst)
lst[2:4] = ["a", "b"]
print(lst)
执行结果为:
[1, 'abc', 'b', 2, 3, 'a']
[1, 'abc', 'a', 'b', 3, 'a']
2.6.4 查找
切片去查,或者循环去查
2.6.5 其他操作
count(): 统计某个元素在列表中出现的次数
a = ["q", "w", "q", "r", "t", "y"]
print(a.count("q"))
#结果为:2
index(): 从列表中找出某个值第一个匹配项的索引位置
a = ["q", "w", "q", "r", "t", "y"]
print(a.index("r"))
#结果为:3
sort():用于在原位置对列表进行排序
a = [2, 1, 4, 5, 3]
a.sort() #它没有返回值,所以只能打印a
print(a)
执行结果为:
[1, 2, 3, 4, 5]
reverse(): 用于将列表中的元素反向存放
a = [2, 1, 4, 5, 3]
a.reverse() #它没有返回值,所以只能打印a
print(a)
执行结果为:
[3, 5, 4, 1, 2]