字符串是什么

根据维基百科定义:字符串是由零个或多个字符组成的有限序列。而在 Python3中,它有着更明确的意思:字符串是由 Unicode码点组成的不可变序列(Strings are immutable sequences of Unicode code points.)

字符串字面量

python 中的字符串字面量由单引号或双引号括起。'hello'等同与"hello",可以使用 print() 函数打印字符串字面量。

print('hello')
print("hello")

向变量赋值

通过使用变量名称后跟等号和字符串,可以吧字符串赋值给变量。

a = 'hello'
print(a)

多行字符串

可以使用三个引号将多行字符串赋值给变量

a = '''Python is a widely used general-purpose, high level programming language. '''
print(a)

在结果中,换行符插入与代码中相同的位置。

字符串转义字符

转义字符 描述
\ (在行尾时) 续行符
\\ 反斜杠符号
\’ 单引号
\" 双引号
\n 换行符
\r 回车
\t 制表符

字符串连接

1. +

a = "Hello"
b = "world"
print(a+b)

2. format()

a = "Hello"
b = "world"
print("{0} and {1}".format(a,b))

3. f-string

a = "Hello"
b = "world"
print(f"{a} and {b}")

在拼接短的字面值时,由于 CPython中的 常数折叠(constant folding)功能,这些字面值会被转换成更短的形式,
例如 “a”+“b”+“c” 被转换成 “abc”,“hello”+“world” 也会被转换成 “hello world”。
这种转换是在编译期完成的,而到了运行期时就不会再发生任何拼接操作,因此会加快整体计算的速度。

常数折叠优化有一个限度,它要求拼接结果的长度不超过20。
所以,当拼接的最终字符串长度不超过20时,+ 号操作符的方式,会比其他方式拼接快得多。
长度超过20的情况,建议采用 f-string 或者 format 方式。

字符串重复

星号 * 表示重复当前字符串,紧跟的数字为重复的次数

a = "Hello"
print(a * 3)
>>>HelloHelloHello

特殊字符串

1. 字符串前加 r

r 前缀表示:后面的字符串是普通字符串,字符串中的转义字符就会被当成普通的字符串,而不会起作用。

a = r"hello world\n\n" # 此处 \n\n 就以字符串形式展示

2. 字符串前加b

b前缀表示:后面字符串是bytes 类型。

a = b"hello world"

3. 字符串前加u

u前缀表示:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

a = u"你好世界"

in & not in

x in s       若 s 包含 x,返回 True,否则返回 False
x not in s   若 s 包含 x,返回 False,否则返回 True

len() 方法

len(str)
返回字符串的长度

the_str = "hello world"
print(len(the_str ))
>>>11