1-4-04. 数据类型 - 字符串 str
字符串 str
1. 定义
字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。
2.独有功能
1. 以 XX 开头 得到一个布尔值
result = v1.startswith("叨逼叨的一天")
2. 以 XX 结尾 得到一个布尔值
result = v1.endswith("烦死了")
3. 是否为十进制数?
得到一个布尔值 判断是否是个整数
result = v1.isdecimal()
4. 去除字符串两边的 空格、换行符、制表符,得到一个新字符串
data = msg.strip() ## 将msg两边的空白去掉
data = msg.lstrip() ## 将msg左边的空白去掉
data = msg.rstrip() ## 将msg右边的空白去掉
5. 大写,得到一个新字符串
data = msg.upper()
6. 小写,得到一个新字符串
data = msg.lower()
7. 内容替换,得到一个新的字符串
value = data.replace("好人","贱人")
8. 切割,得到一个列表
result = data.split('|') # ["武沛齐","root","wupeiqi@qq.com"]
v2 = data.split("|", 2) # ['武沛齐', 'root|wupeiqi@qq.com']
v2 = data.rsplit(',',1) # ['武沛齐,root', 'wupeiqi@qq.com']
9. 拼接,得到一个新的字符串
v1 = "_".join(data_list)
10. 格式化字符串,得到新的字符串
name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
data = name.format("老王","护士","嫩模")
11. 字符串转换为字节类型
v1 = data.encode("utf-8") # utf-8,字节类型
v2 = data.encode("gbk") # gbk,字节类型
s1 = v1.decode("utf-8") # 嫂子
s2 = v2.decode("gbk") # 嫂子
12. 将字符串内容居中、居左、居右展示
data = v1.center(21, "-") # # 居中
data = v1.ljust(21, "-") # # 居左
data = v1.rjust(21, "-") # # 居右
13. 帮助你填充0
v1 = data.zfill(10)`
3. 公共功能
1.相加:字符串 + 字符串
v1 = "alex" + "大sb" #alex大sb
2. 相乘:字符串 * 整数
data = "嫂子" * 3
print(data) # 嫂子嫂子嫂子
3. 长度
data = "嫂子满身大汉"
value = len(data)
print(value) # 6
4. 获取字符串中的字符,索引
message = "来做点py交易呀"
# 0 1 2345 6 7
# ... -3 -2 -1
print(message[0]) # "来"
注意:字符串中是能通过索引取值,无法修改值。【字符串在内部存储时不允许对内部元素修改,想修改只能重新创建。】 索引是0开始
5. 获取字符串中的子序列,切片
message = "来做点py交易呀"
print(message[0:2]) # "来做" 前取后不取
注意:字符串中的切片只能读取数据,无法修改数据。【字符串在内部存储时不允许对内部元素修改,想要修改只能重新创建】
message = "来做点py交易呀"
value = message[:3] + "Python" + message[5:]
print(value)
6. 步长,跳着去字符串的内容
name = "生活不是电影,生活比电影苦"
print( name[ 0:5:2 ] ) # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】
# 面试题:给你一个字符串,请将这个字符串翻转。
value = name[-1::-1]
print(value) # 苦影电比活生,影电是不活生
7. 循环
-
while循环
-
for循环
-
range,帮助我们创建一系列的数字【前取后不取】
range(10) # [0,1,2,3,4,5,6,7,8,9]
- For + range
for i in range(10):
print(i)
一般应用场景:
while,一般在做无限制(未知)循环此处时使用。
while True:
...
# 用户输入一个值,如果不是整数则一直输入,直到是整数了才结束。
num = 0
while True:
data = input("请输入内容:")
if data.isdecimal():
num = int(data)
break
else:
print("输入错误,请重新输入!")
- for循环,一般应用在已知的循环数量的场景。
message = "来做点py交易呀"
for char in message:
print(char)
- break和continue关键字
message = "来做点py交易呀"
for char in message:
if char == "p":
continue
print(char)
# 输出:
来
做
点
y
交
易
呀
message = "来做点py交易呀"
for char in message:
if char == "p":
break
print(char)
# 输出:
来
做
点
for i in range(5):
print(i)# 0 1 2 3 4
for j in range(3):
break
print(j) # 0 1 2 # 0 1 2 # 0 1 2 # 0 1 2 # 0 1 2
4. 转换
一般情况下,只有整型转字符串才有意义。
num = 999
data = str(num)
print(data) # "999"
5 其他
1 字符串不可被修改
name = "武沛齐"
name[1]
name[1:2]#字符串只能读