目录
5.3 字符串类型 str (不可变,创建好之后内部就无法修改。【独有功能都是新创建一份数据】)
5.3.1.1 startswith 判断字符串是否以 XX 开头?得到一个布尔值
5.3.1.2 endswith 判断字符串是否以 XX 结尾?得到一个布尔值
5.3.1.3 isdecimal 判断字符串是否为十进制数?得到一个布尔值
5.3.1.4 strip 去除字符串两边的 空格、换行符、制表符,得到一个新字符串
5.3.1.7 replace 字符串内容替换,得到一个新的字符串
5.3.1.10 format 格式化字符串,得到新的字符串
5.3.1.12 center 将字符串内容居中、居左、居右展示
5.3.2.6 [数字:数字:数字] 步长,跳着去字符串的内容
Day05:数据类型(上)
常见的数据类型:
-
int,整数类型(就是十进制整数的统称)
1,2,3,4
-
bool,布尔类型 (就是 “真”、“假” )
True & False
-
str,字符串类型 不可变,创建好之后内部就无法修改。【独有功能都是新创建一份数据】)
"你好"
-
list,列表类型 列表 list 有序且可变的容器
[1,2,3,4]
-
tuple,元组类型 有序且不可变的容器
(1,2,)
-
dict,字典类型 可变、无序、键不重复 且 元素只能是 键值对 的容器
{1:'你好',2:'大家好'}
-
set,集合类型 无序 、可变、不允许数据重复的容器
{"刘能", "赵四", "⽪⻓⼭"}
-
float,浮点类型(浮点型)用于表示小数
1.1 2.2321
5.1 整数 int (就是十进制整数的统称)
5.1.1 转换
# 布尔值转整型
n1 = int(True) # True转换为整数 1
n2 = int(False) # False转换为整数 0
# 字符串转整型
v1 = int("186",base=10) # 把字符串看成十进制的值,然后再转换为 十进制整数,结果:v1 = 186
v2 = int("0b1001",base=2) # 把字符串看成二进制的值,然后再转换为 十进制整数,结果:v1 = 9 (0b表示二进制)
v3 = int("0o144",base=8) # 把字符串看成八进制的值,然后转换为 十进制整数,结果:v1 = 100 (0o表示八进制)
v4 = int("0x59",base=16) # 把字符串看成十六进制的值,然后转换为 十进制整数,结果:v1 = 89 (0x表示十六进制)
# 浮点型(小数)
v1 = int(8.7) # 8
二进制、八进制、十进制、十六进制 规则存储的字符串时,可以轻松的通过int转换为十进制的整数。
5.2 布尔类型 bool (就是 “真”、“假” )
5.2.1 转换
整数0、空字符串、空列表、空元组、空字典转换为布尔值时均为False 其他均为True
5.2.2 其他
如果在 if
、while
条件后面写一个值当做条件时,他会默认转换为布尔类型,然后再做条件判断。
if 0:
print("太六了")
else:
print(999)
if "大烧饼":
print("你好")
if "大烧饼":
print("你是傻逼?")
else:
print("你是逗比?")
5.3 字符串类型 str (不可变,创建好之后内部就无法修改。【独有功能都是新创建一份数据】)
5.3.1独有功能
5.3.1.1 startswith 判断字符串是否以 XX 开头?得到一个布尔值
v1 = "叨逼叨的一天,烦死了"
# True
result = v1.startswith("叨逼叨的一天")
print(result) # 值为True
5.3.1.2 endswith 判断字符串是否以 XX 结尾?得到一个布尔值
v1 = "叨逼叨的一天,烦死了"
result = v1.endswith("烦死了")
print(result) # 值为True
5.3.1.3 isdecimal 判断字符串是否为十进制数?得到一个布尔值
v1 = "1238871"
result = v1.isdecimal()
print(result) # True
5.3.1.4 strip 去除字符串两边的 空格、换行符、制表符,得到一个新字符串
msg = " H e ll o啊,树哥 "
data = msg.strip()
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥"
补充:去除字符串两边指定的内容
msg = "哥H e ll o啊,树哥"
data = msg.strip("哥")
print(data) # 将msg两边的哥去掉,得到"H e ll o啊,树"
5.3.1.5 upper 字符串变大写,得到一个新字符串
msg = "my name is oliver queen"
data = msg.upper()
print(msg) # my name is oliver queen
print(data) # 输出为:MY NAME IS OLIVER QUEEN
5.3.1.6 lower 字符串变小写,得到一个新字符串
msg = "My Name Is Oliver Queen"
data = msg.lower()
print(data) # 输出为:my name is oliver queen
5.3.1.7 replace 字符串内容替换,得到一个新的字符串
data = "你是个好人,但是好人不合适我"
value = data.replace("好人","贱人")
print(data) # "你是个好人,但是好人不合适我"
print(value) # "你是个贱人,但是贱人不合适我"
5.3.1.8 split 字符串切割,得到一个列表
data = "大烧饼|root|wupeiqi@qq.com"
result = data.split('|') # ["大烧饼","root","wupeiqi@qq.com"]
print(data) # "大烧饼|root|wupeiqi@qq.com"
print(result) # 输出 ["大烧饼","root","wupeiqi@qq.com"] 根据特定字符切开之后保存在列表中,方便以后的操作
扩展:
data = "大烧饼|root|wupeiqi@qq.com"
v1 = data.split("|") # ['大烧饼', 'root', 'wupeiqi@qq.com']
print(v1)
v2 = data.split("|", 1) # ['大烧饼', 'root|wupeiqi@qq.com']
print(v2) # ['大烧饼', 'root|wupeiqi@qq.com'] 只把第一个符合条件的切割了
5.3.1.9 join 字符串拼接,得到一个新的字符串
data_list = ["你","是","大烧饼"]
v1 = "_".join(data_list)
print(v1) # 你_是_大烧饼
5.3.1.10 format 格式化字符串,得到新的字符串
name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
data = name.format("老王","护士","嫩模")
print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
5.3.1.11 encode 字符串转换为字节类型
data = "嫂子" # unicode,字符串类型
v1 = data.encode("utf-8") # utf-8,字节类型
v2 = data.encode("gbk") # gbk,字节类型
print(v1) # b'\xe5\xab\x82 \xe5\xad\x90'
print(v2) # b'\xc9\xa9 \xd7\xd3'
s1 = v1.decode("utf-8") # 嫂子
s2 = v2.decode("gbk") # 嫂子
print(s1)
print(s2)
5.3.1.12 center 将字符串内容居中、居左、居右展示
v1 = "王老汉"
# data = v1.center(21, "-")
# print(data) #---------王老汉---------
# data = v1.ljust(21, "-")
# print(data) # 王老汉------------------
# data = v1.rjust(21, "-")
# print(data) # ------------------王老汉
5.3.1.13 zfill 帮助你填充0
data = "abcd"
v1 = data.zfill(10)
print(v1) # 000000abcd
# 应用场景:处理二进制数据
data = "101" # "00000101"
v1 = data.zfill(8)
print(v1) # "00000101"
5.3.2 公共功能
5.3.2.1 + 相加 字符串 + 字符串
v1 = "我是" + "大sb"
print(v1)
5.3.2.2 * 相乘:字符串 * 整数
data = "嫂子" * 3
print(data) # 嫂子嫂子嫂子
5.3.2.3 len 计算长度
data = "嫂子满身大汉"
value = len(data)
print(value) # 6
5.3.2.4 [序号] 获取字符串中的字符,索引
message = "来做点py交易呀"
# 0 1 2345 6 7
# ... -3 -2 -1
print(message[0]) # "来"
print(message[1]) # "做"
print(message[2]) # "点"
print(message[-1]) # 呀
print(message[-2]) # 呀
print(message[-3]) # 呀
注意:字符串中是能通过索引取值,无法修改值。【字符串在内部存储时不允许对内部元素修改,想修改只能重新创建。】
5.3.2.5 [数字:数字] 获取字符串中的子序列,切片
message = "来做点py交易呀"
print(message[0:2]) # "来做"
print(message[3:7]) # "py交易"
print( message[3:] ) # "py交易呀"
print( message[:5] ) # "来做点py"
print(message[4:-1]) # "y交易"
print(message[4:-2]) # "y交"
print( message[4:len(message)] ) # "y交易呀"
注意:字符串中的切片只能读取数据,无法修改数据。【字符串在内部存储时不允许对内部元素修改,想要修改只能重新创建】
5.3.2.6 [数字:数字:数字] 步长,跳着去字符串的内容
name = "生活不是电影,生活比电影苦"
print( name[ 0:5:2 ] ) # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】
print( name[ :8:2 ] ) # 输出:生不电, 【区间范围的前面不写则表示起始范围为0开始】、
# print( name[ 2::2 ] ) # 输出:不电,活电苦
# print( name[ 2::3 ] ) # 输出:不影活影
print( name[ 2::3 ] ) # 输出:不电,活电苦 【区间范围的后面不写则表示结束范围为最后】
print( name[ ::2 ] ) # 输出:生不电,活电苦 【区间范围不写表示整个字符串】
print( name[ 8:1:-1 ] ) # 输出:活生,影电是不 【倒序】
5.3.2.7 while for 循环
-
while
message = "来做点py交易呀"
index = 0
while index < len(message):
value = message[index]
print(value)
index += 1
-
for循环
message = "来做点py交易呀"
for char in message:
print(char)
-
range,帮助我们创建一系列的数字
range(10) # [0,1,2,3,4,5,6,7,8,9]
range(1,10) # [1,2,3,4,5,6,7,8,9]
range(1,10,2) # [1,3,5,7,9]
range(10,1,-1) # [10,9,8,7,6,5,4,3,2]
-
For + range
message = "来做点py交易呀"
for i in range( len(message) ): # [0,1,2,3,4,5,6,7]
print(message[i])