string

python 中的 string 字符串要么是以 单引号 要么是 双引号 表示的,比如说:'hello' 和 "hello" 是一个意思,也可以直接使用 print 打印字符串。


print("Hello")
print('Hello')

将 string 赋给变量

将一个字符串赋给一个变量可以使用下面的赋值语句。


a = "Hello"
print(a)

多行string

可以使用三个双引号的多行字符串格式赋给一个变量,如下所示:


a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""

print(a)

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.

同样也可以使用三个单引号方式。


a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''

print(a)

string 和 array

像很多编程语言一样, python 中的字符串也是用 unicode 表示的字节数组,但是 Python 中并没有字符类型,因为 python 中的单引号和双引号都表示字符串。

使用 [] 的形式可以访问 string 中的元素,比如获取下面string 中的第一个字符。


a = "Hello, World!"
print(a[1])

循环string

因为 string 是一个 array,所以我们可以使用 循环 来迭代string中的字符,python 中 使用 for 循环即可。


for x in "banana":
  print(x)

string 长度

可以用 len() 函数获取 string 的长度


a = "Hello, World!"
print(len(a))

字符串检查

如何想检查 一个短语 或者 一个字符 是否为某一个字符串的子集,可以使用 in 操作符。


txt = "The best things in life are free!"
print("free" in txt)


---- output ----

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
True

也可以将 in 和 if 搭配使用,实现条件判断逻辑。


txt = "The best things in life are free!"
if "free" in txt:
  print("Yes, 'free' is present.")

--- output ---

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
Yes, 'free' is present.

同样的道理,可以使用  if not 实现上面情况的反向操作。


txt = "The best things in life are free!"
print("expensive" not in txt)

txt = "The best things in life are free!"
if "expensive" not in txt:
  print("Yes, 'expensive' is NOT present.")

--- output ---

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
True
Yes, 'expensive' is NOT present.

切片操作

使用 切片 语法 可以实现从一个 string 中返回一个范围的子字符串。

通过指定切片的三元素:起始,结束 和 ":" ,来返回 string 的一部分,举个例子:从下面字符串中切下 第 2-5 位置的子串。


b = "Hello, World!"
print(b[2:5])


---- output ----

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
llo


从 start 位置切片

如果忽略开始位置的话,这个切片范围默认会从第一个字符开始,下面的例子和上面是一样的。


b = "Hello, World!"
print(b[:5])

从 end 位置切片

如果忽略结束位置的话,这个切片范围默认会到 string 的末尾,比如下面的例子中从 string 的第二个位置开始切下字串。


b = "Hello, World!"
print(b[2:])

负数索引

负数表示从 string 的末尾往前开始计算位置,举个例子:


b = "Hello, World!"
print(b[-5:-2])

--- output ---

PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py
orl

稍微解释一下:

  • From:  'o' 是 字符串中倒数第五个位置。
  • To:  'l' 是 字符串中倒数第二个位置。

译文链接:https://www.w3schools.com/python/python_strings.asp