字符串相关的用法

正则表达式

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u

在Python3中,所有的字符串都是Unicode字符串。

1.切片

str[start,end]

2.字符串运算符

(1) +
字符串拼接
str1+str2
(2)*
str*num 字符串str的num倍数,重复输出
(3)r/R
引号里的字符串原格式输出(忽略转义字符等)

print(R'xxxx')

(4)in / not in
a in b,返回bool类型

3.转义字符 \

比较常用的:
(1)\n 换行

(2)\ 续行符(在行尾部时)

>>> print("line1 \
... line2 \
... line3")
line1 line2 line3
>>> 

(3)\r 回车 (将后边的字符移动到字符串开头)

>>> print("Hello\rWorld!")
World!
>>> print('google runoob taobao\r123456')
123456 runoob taobao

4.字符串格式化

(1)%:最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中

#!/usr/bin/python3
 
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

(2)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'

5.三引号

三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符

#!/usr/bin/python3
 
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)

结果:
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB (    )。
也可以使用换行符 [ 
 ]。

应用:需要一块HTML或者SQL时可以使用三引号

errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')

6.字符串内建函数

(1)count(str, beg= 0,end=len(string))
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

(2) find(str, beg=0, end=len(string))
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

(3)join(seq)
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
a.join(b)
a是字符串,分隔符
b是列表、元组

print('p'.join(['1','3','4']))
输出:
1p3p4

join()和split()区别
join()是使用固定间隔连接列表/元组的元素
split()是用固定的符号把字符串分割成列表

(4)split
两种:

  • str.split(‘’) 只支持单个切割符号
  • re.split(‘正则表达式’,str) 支持多个分隔符

区别:Python: str.split()和re.split()的区别 - 筱筱的春天 - 博客园

split(str=“”, num=string.count(str))
以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串

c  = 'wuuuw,jsj,j'
    print(c.split(','))
输出:
['wuuuw', 'jsj', 'j']

更多函数请参考 Python3 字符串 | 菜鸟教程

(5)strip()
默认删除字符串头和尾的空字符串(\n\r\t)
str.strip([char]) 删除str里char

(6)replace()
将目标的字符串替换为想要的字符串

# 将原字符串中的school替换为top school
"hogwarts school".replace("school", "top school")

补充
1.startswith()
字符串str是否以xx开头
str.startswith(xx) 返回True,false