"
与 `
"
与 `都可用来创建字符串,没有区别
转义字符\
转义字符 | 描述 |
---|---|
\ (在行尾时) |
续行符,可将想要输出在一行的字符分多行输入 |
\后\, `, " | 分别在打印\,`,"时使用 |
\r | 回车将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成 |
\n | 换行 |
\t | 横向制表 |
\v | 纵向制表符到下一行的制表位 |
\000 | 空 |
字符串运算符
a="Hello"
操作符 | 描述 | 实例 |
---|---|---|
+ |
字符串连接 | |
* |
重复输出字符串 | |
[] | 通过索引获取字符串中单个字符 | a[1]=e |
[ : ] | 截取字符串中连续的一部分,遵循左闭右开原则 | a[1:4] 输出结果 ell |
[ : : step] | 以特定步长选取字符串的离散字符,step为-1时可以起到翻转效果 | |
in | 成员运算符 - 如果字符串中包含给定的字符返回 \True | 'H' in a 输出结果 True |
not in | 与in用法相同,结果相反 | |
r/R | 原始字符串,所有字符串都按照字面意思使用 | print( r'\n' ) print( R'\n' ) |
字符串格式化
f-string
称为字面量格式化字符串,
字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,如
>>> name = 'Runoob'
>>> f'Hello {name}' # 替换变量
'Hello Runoob'
>>> f'{1+2}' # 使用表达式
'3'
>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'
Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:
x = 1
print(f'{x+1=}') # Python 3.8
输出
x+1=2
与C中sprintf相同用法
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
#我叫 小明 今年 10 岁!
%c,%s,%d, %u,%f, %e等与C相同
格式化操作符辅助指令:
-
当*操作符用于格式化字符串时,它表示可变参数操作符,可以将多个参数打包成一个元组传递给format()方法
numbers = (1, 2, 3, 4)
print("The numbers are: {}, {}, {}, {}".format(*numbers))输出
The numbers are: 1, 2, 3, 4
+
在正数前面显示加号( + )-
用做左对齐m.n. m 表示字段的最小宽度,并且适用于所有类型的值,包括字符串、整数和浮点数,不足的补空格,超出的不做处理,n 是小数点后的位数(只对浮点数有效)
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。
常用字符串内置函数
repr():可将转义字符都表示出来
str():将数字转换为字符串
len():返回字符串长度
-
zip(*iterables):
*iterables
表示一个或多个可迭代对象,可以是列表、元组、字符串等。zip()
函数会按照最短的可迭代对象的长度进行迭代,将每个可迭代对象相同位置的元素配对为一个元组。返回的迭代器可以通过list()
或tuple()
转换为列表或元组。 lower():大写变小写
upper():小变大
chr(i):用于将整数转换为对应的 Unicode 字符。
ord():返回表示给定字符的 Unicode 码点。
eval()是执行表达式里的内容,ast.literal_eval()更好
strip()删除首尾多余空格
replace(old, new [, max])把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
count(str, beg= 0,end=len(string))返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
字符串常量(string模块内)
string.ascii_letters #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_lowercase #abcdefghijklmnopqrstuvwxyz
string.ascii_uppercase #ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.digits #0123456789
string.punctuation #!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
string.printable #所有Python支持的字符
string.whitespace #所有空白字符,' \t\n\r\x0b\x0c’