目录
一、字符串的基础认识
1、概念
字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列
2、引号的使用
Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串,注意:成对出现
(1)单引号代码例子
str1 = 'hello'
str1
str1 = 'hello \
hello \
hello'
str1
(2)双引号代码例子
str1 = "hello"
str1
str1 = "hello \
hello \
hello"
str1
(3)三引号代码例子
str1 = ''''hello
hello
hello'''
str1
str1 ="""hello
hello
hello"""
str1
(4)引号嵌套:定义字符串时单引号与双引号可以嵌套使用,
注意:使用双引号表示的字符串中允许嵌套单引号,但不允许包含双引号,同样,使用单引号表示的字符串中不允许包含单引号
①双引号嵌套单引号
str1 = "'hello'"
str1
②单引号嵌套双引号
str1 = '"hello"'
str1
3、let's go的表示
(1)通过引号嵌套实现
str4 ="let's go"
str4
(2)反斜杠“\”转义:在字符串中的引号前添加“\”,解释器会将“\”之后的引号视为解释为一个普通字符,而非特殊符号
str4 = 'let\'s go' #通过反斜杠“\”转义,“\”之后的字符视为普通字符,而非特殊符号
str4
4、转义字符
(1)转义字符:由“\”和具有特殊意义的字符组成(一些普通字符与反斜杠组合后会失去原有意义,产生新的含义)
(2)转移字符通常用于表示一些无法显示的字符,例如空格、回车等等。
转义字符 | 功能说明 |
\b | 退格(Backspace) |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
(2)字符串 'let\'n learn Python'的表达
str4 = 'let\n learn Python'
str4
(3)字符串D:\Users\User\Desktop\ppt的表达
①方法一
str2 = "D:\\Users\\User\\Desktop\\ppt"
print(str2)
②方法二
str2 = "D:/Users/User/Deskto/ppt"
str2
③方法三
str2 = r"D:\Users\User\Desktop\ppt"
str2
二、字符串的格式化
1、%格式化字符串
(1)格式:"xxxxxx %s xxxxxx %s" % (value1, value2)
①value1,value2值:被格式化为字符类型
②%s就是格式化符,也是占位符,不论是字符还是数值,都会被格式化为格式化符对应的类型
(2)使用说明
①Python将一个带有格式符的字符串作为模板,使用该格式符为真实值预留位置,并说明真实值应该呈现的格式
name = "李强"
print("你好,我叫%s" % name)
②一个字符串中可以同时包含多个占位符
age = 12
print("你好,我叫%s, 今年我 %d 岁了" % (name,age))
(3)不同的占位符为不同类型的变量预留位置,常见的占位符,如下所示:
(4)注意:使用占位符%时变量的类型,若变量类型与占位符不匹配程序会产生异常
age = '12'
print("你好,我叫%s, 今年我 %d 岁了" % (name,age))
%虽然强大,但用起来难免有些麻烦,代码也不是特别美观,所以,在python 2.5 之后,提供了更加优雅的str.format()方法🧐
2、str.format()方法格式化字符串
(1)使用format()方法格式化字符串,无需关注变量的类型
(2)使用说明
①使用名称占位符
s2 = "年龄 {age} 名字 {name}".format(age=18, name="张三")
print(s2) # xxxx 18 xxxx hangman
②若字符串中包含多个没有指定序号(默认从0开始)的“{}”,则按 “{}”出现的顺序分别用format ()方法中的参数进行替换,否则按照序号对应的format ()方法的参数进行替换
# 使用序号占位符,为空默认从左到右01234.。。
value1 = 123
value2 = 456
s3 = "xxxx {1} xxx{0}".format(value1,value2)
print(s3) # xxxx [9, 0] xxx(7, 8)
s3 = "xxxx {}".format(value1)
print(s3) # xxxx [9, 0] xxx(7, 8)
# 也可以混合使用
s4 = "xxxx {} XXX {name} xxx {}".format(value2,value1,name="s4")
print(s4)
(3)拓展用法
① format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息
②槽的内部样式: {<参数序号>: <格式控制标记>}
<格式控制标记>:用来控制参数显示时的格式
包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,这些字段都是可选的,可以组合使用
# 0表示format()方法的参数下标,对应于第一个参数,可不指定,默认从0开始
# .4f表示格式化为实数,保留4位小数
print('{0:10.4f}'.format(10/3))
print('{0:.2%}'.format(1/3))
print('{:.2%}'.format(1/3))
③对齐方式
# 格式化为百分数字符串,总宽度为10,保留2位小数,>表示右对齐 <表示左对齐 ^表示居中对齐
print('{0:>10.2f}'.format(1/3))
print('{0:<10.2}'.format(1/3))
print('{0:^10.2}'.format(1/3))
3、f-string格式化字符串
(1)f-string的介绍:它是2015年python 3.6根据PEP498新添加的一种字符串格式化方法
(2)f-string的用法:它是一个文字字符串,前缀为’f’,其中包含大括号内的表达式,表达式会将大括号中的内容替换为其值
# 字符串前面加字符f,Python 3.6之后的版本支持这种用法
width = 8
height = 6
print(F'Rectangle of {width}*{height}\n Area:{width*height}')
print(f'{width}')
name = '申小兮'
age = 20
gender = '女'
f'我的名字是{name},今年{age}岁了,我的性别是:{gender}。'
三、字符串的运算
1、520+1314 和"520”+“1314"—样吗?
(1)显然是不一样的,+ 表示字符串的拼接,* 表示字符串的重复
(2)代码展示
print(520+1314)
print("520"+"1314")
2、文本进度条
import time
scale = 10
print("----执行开始----")
for i in range(scale+1):
a = "*" * i #'*'重复i次
b = '.' * (scale - i) #.重复(scale-i)次
c = i/scale * 100
print("\r{:3.0f}%[{}{}]".format(c,a,b),end="") #^指居中对齐,3指输出宽度为3;.0f指保留0位小数e
time.sleep(0.1) #循环每执行一次休眠0.1s
print("\n----执行结束----")
四、字符串对象
1、字符串字符串属于不可变对象,所有方法都是返回处理后的字符串或字节串,均不对原字符串进行任何修改
str1 = "1234"
str1[1]
str1[1] = '3'