字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。
- 1.单引号和双引号均可,三引号
- 2.三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。
v1 = "人生苦短"v2 = '人生苦短'v3 = "人'生苦短"v4 = '人"生苦短'v5 = """吵架都是我的错,因为女友真不错。"""
内置方法
1.判断字符串是否以 XXX 开头
v1 = "学编程赚大钱,真好"result = v1.startswith("学编程赚大钱") # Trueprint(result) # 值为True
2.判断字符串是否以 XXX 结尾
v1 = "学编程赚大钱,真好"result = v1.endswith("真好") # Trueprint(result) # 值为True
3.判断字符串是否是数字
是否是十进制整数
# isdigit还会判断其它数字,如①,因为推荐使用isdecimalv1 = "123"print(v1.isdecimal()) # Trueprint(v1.isdigit()) # Truev2 = "①"print(v2.isdecimal()) # Falseprint(v2.isdigit()) # True
4.去除字符串两边的 空格、换行符、制表符
msg = " H e ll o啊,大哥 "data = msg.strip()print(data) # 将msg两边的空白去掉,得到"Hello啊,大哥"
msg = " Hello啊,大哥 "data = msg.lstrip()print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大哥 "
msg = " Hello啊,大哥 "data = msg.rstrip()print(data) # 将msg两边的空白去掉,得到" H e ll o啊,大哥"
再补充:去除字符串两边指定的内容
msg = "哥H e ll o啊,大哥"data = msg.strip("哥")print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大"
msg = "哥H e ll o啊,大哥"data = msg.lstrip("哥")print(data) # 将msg两边的空白去掉,得到"H e ll o啊,大哥"
msg = "哥H e ll o啊,大哥"data = msg.rstrip("哥")print(data) # 将msg两边的空白去掉,得到"哥H e ll o啊,大"
5. 字符串变大小写
字符串变大写
msg = "my name is David queen"data = msg.upper()print(msg) # my name is David queenprint(data) # 输出为:MY NAME IS DAVID QUEEN
字符串变小写
msg = "My Name Is David Queen"data = msg.lower()print(data) # 输出为:my name is david queen
6.字符串内容替换
data = "你是个好人,但是好人不合适我"value = data.replace("好人","贱人")print(data) # "你是个好人,但是好人不合适我"print(value) # "你是个贱人,但是贱人不合适我"
7.字符串切割
得到一个列表
data = "沐风|QQ|598779784"result = data.split('|') # ["沐风","QQ","598779784"]print(data) # "沐风|QQ|598779784"print(result) # 输出 ["沐风","QQ","598779784"] 根据特定字符切开之后保存在列表中,方便以后的操作
8.字符串拼接
得到一个新的字符串
data_list = ["mufeng", "是", "大帅比"]v1 = "_".join(data_list) # mufeng_是_大帅比print(v1)
9.格式化字符串
format函数不会修改原来的字符串,而是复制得到一个新的字符串
name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"data = name.format("老王", "护士", "嫩模")print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"print('*' * 21)name = "{1}的喜欢干很多行业,例如有:{1}、{2} 等"data = name.format("老王", "护士", "嫩模")print(data) # 护士的喜欢干很多行业,例如有:护士、嫩模 等print(name) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"print('*' * 21)name = "{name}的喜欢干很多行业,例如有:{h1}、{h2} 等"data = name.format(name="老王", h1="护士", h2="嫩模")print(data) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
其它操作
1.相加
字符串 + 字符串
v1 = "mf" + "大sb"print(v1) # mf大sb
2.相乘
字符串 * 整数
data = "饺子" * 3print(data) # 饺子
3.长度
data = "嫂子满身大汗"value = len(data)print(value) # 6
4.索引
message = "来做点py交易呀"# 0 1 2345 6 7# ... -3 -2 -1print(message[0]) # "来"print(message[1]) # "做"print(message[2]) # "点"print(message[-1]) # 呀print(message[-2]) # 呀print(message[-3]) # 呀
注意:字符串中是能通过索引取值,无法修改值。
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交易呀"
6.步长
name = "生活不是电影,生活比电影苦"print( name[ 0:5:2 ] ) # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】print( name[ :8:2 ] ) # 输出:生不电, 【区间范围的前面不写则表示起始范围为0开始】print( name[ 2::3 ] ) # 输出:不电,活电苦 【区间范围的后面不写则表示结束范围为最后】print( name[ ::2 ] ) # 输出:生不电,活电苦 【区间范围不写表示整个字符串】print( name[ 8:1:-1 ] ) # 输出:活生,影电是不 【倒序】
name = "生活不是电影,生活比电影苦"print(name[8:1:-1]) # 输出:活生,影电是不 【倒序】print(name[-1:1:-1]) # 输出:苦影电比活生,影电是不 【倒序】# 面试题:给你一个字符串,请将这个字符串翻转。value = name[-1::-1]print(value) # 苦影电比活生,影电是不活生
7.遍历
# whilemessage = "来做点py交易呀"index = 0while index < len(message):value = message[index]print(value)index += 1
# formessage = "来做点py交易呀"for char in message:print(char)
# formessage = "来做点py交易呀"for i in range( len(message) ): # [0,1,2,3,4,5,6,7]print(message[i])
类型转换
字符串与数字互转
a = 1stra = str(a)print(stra, type(stra)) # 1 <class 'str'>inta = int(stra)print(inta, type(inta)) # 1 <class 'int'>
list转str
list1 = [ '1', '2', '3' ]print(''.join(list1)) # 123
tuple转str
tuple1 = ( '1', '2', '3' )print(''.join(list1)) # 123
