学习Python Day8 —— 字符串

学习Python Day8 —— 字符串

字符串的操作

1. in和not in

字符串1 in 字符串2 —— 判断字符串1是否是字符串2的子串

print("a" in "abc")     # True
print("ab" in "abc")    # True
print("ac" in "abc")    # False

2.相关函数

len 、str

len()函数可以得到字符串的长度

str()函数可以将括号内的数据转换成字符串

格式字符串

1.格式字符串

格式字符串:在字符串中用格式占位符代替字符串变化的部分,然后在后面用数据来给格式占位符赋值。

语法:
带有格式占位符的字符串 % (数据1, 数据2, 数据3,…)
说明:
1)% - 固定写法
2)() - 固定写法,在数据只有一个的时候可以省略
3)数据 - 数据的个数必须和前面字符串中占位的个数保持一致;类型也要和占位符一一对应
4)格式占位符 - 格式占位符有哪些,对应的数据的类型是什么都是什么固定的
%s - 字符串(可以是其他数据)
%d - 整数
%f - 浮点数
%c - 字符(字符编码值)

2.f-string

1)format方法

包含{}的字符串.format(数据1, 数据2,…) - 字符串中{}就相当于格式字符串中的占位符

# a.{}
message = "{}今年{}岁,月薪{}元".format(name, age, money)

# b.{下标}    - 下标指的是获取format中第几个数据,从0开始
message = "{1}今年{0}岁".format(age, name)
print("format2:", message)

# c.{key}
message = "{y}今年{x}岁".format(y=name, x=age)
print("format3:", message)

2)格式约束:{:约束条件}、{下标:约束条件}、{key:约束条件}

约束条件:
.Nf - 保留N位小数(四舍五入)
字符 > Nd - 约束数据宽度为N,不够的在前面指定符号填充
字符 < Nd - 约束数据宽度为N,不够的在后面指定符号填充

, - 将数字三位一组用逗号隔开
% - 将小数转换成百分比数据,保留6为小数
.N% - 将小数转换成百分比数据,保留N为小数

print("约束1: {:.2f}".format(3.1415926))       # 约束1: 3.14
print("约束2: {0:.3f}".format(3.1415926))      # 约束2: 3.142

print("约束2: {:x>5}".format(100))     # 约束2: xx100
print("约束2: {:0<5}".format(23))      # 约束2: 23000

print("约束3: {:,}".format(100000))

print("约束4:{:%}".format(0.2356))
print("约束4:{:.1%}".format(0.2356))

3)f-string - format方法的简写

语法:

f"字符串内容"

message = f"{name}今年{age}岁,月薪:{money}元!"
print(message)

字符串相关方法

1.字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数

message = 'how are you? i am fine, Thank you, and you?'
print('you 的个数:', message.count('you'))  # 3
print('空格的个数:', message.count(' '))   # 9

2.字符串1.find(字符串2) - 获取字符串2第一次在字符串1中出现的位置(返回值是下标值),如果未找到就返回-1

message = 'how are you? i am fine, Thank you, and you?'
print(message.find('you'))   # 8
print(message.find('a'))   # 4
print(message.find('你好'))   # -1(找不到)

3.字符串1.join(字符串序列) - 将序列中所有的元素用指定字符串拼接产生一个新的字符串

list1 = ["name", "age", "abc", "123"]
new_str = "".join(list1)
print(new_str)      # nameageabc123
message = "hello"
new_str = " ".join(message)
print(new_str)      # h e l l o

1)字符串1.replace(字符串2,字符串3)- 将字符串1中所有的字符串2都替换成字符串3,产生一个新的字符串

2)字符串1.replace(字符串2,字符串3,N)- 将字符串1中前N个的字符串2都替换成字符串3,产生一个新的字符串

message = "how are you? im fine, thank you, and you?"
new_str = message.replace("you", "YOU")
print(new_str)      # how are YOU? im fine, thank YOU, and YOU?

new_str = message.replace("you", "me", 2)
print(new_str)      # how are me? im fine, thank me, and you?

1)字符串1.split(字符串2)- 将字符串1中的字符串2作为切割点对字符串1进行切割

str1 = "abc123abc123abc123"
print(str1.split("123"))    # ['abc', 'abc', 'abc', '']

2)字符串1.split(字符串2,N)- 将字符串1中的前N个字符串2作为切割点对字符串1进行切割

6.字符串.zfill(N) - 将字符串转换成一个指定长度的新字符串,原字符串在邮编,左边用0填充

num = 5
print(str(num).zfill(4))    # 0005

猜你喜欢

转载自blog.csdn.net/zhaoxin0917/article/details/108997187
今日推荐