Python 简明教程

Python - Strings

Python 中, stringUnicode characters 的不可变序列。每个字符都具有一个根据 UNICODE 标准的唯一 numeric value 。但是,作为一个整体的序列并没有任何数字值,即使所有字符都是数字。为了将字符串与数字和其他标识符区分开来,字符序列在它的文字表示中包含在单引号、双引号或三引号内。因此,1234 是一个数字(整数),但“1234”是一个字符串。

Creating Python Strings

只要相同字符序列被括起来, singledoubletriple 引号无关紧要。因此,以下字符串表示是等效的。

Example

>>> 'Welcome To TutorialsPoint'
'Welcome To TutorialsPoint'
>>> "Welcome To TutorialsPoint"
'Welcome To TutorialsPoint'
>>> '''Welcome To TutorialsPoint'''
'Welcome To TutorialsPoint'
>>> """Welcome To TutorialsPoint"""
'Welcome To TutorialsPoint'

查看以上语句,很明显,Python 在内部以包含在单引号中的方式存储字符串。

Accessing Values in Strings

Python 并不支持字符类型;这些被视为长度为一的字符串,因此也被视为子字符串。

要访问子字符串,请使用方括号与索引来分片以获取你的子字符串。例如 −

var1 = 'Hello World!'
var2 = "Python Programming"

print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])

执行上述代码后,将生成以下结果 −

var1[0]:  H
var2[1:5]:  ytho

Updating Strings

你可以通过将变量(重新)分配给另一个字符串来“更新”一个现有字符串。新值可以与它的前一个值相关,或者也可以与一个完全不同的字符串相关。例如 −

var1 = 'Hello World!'
print ("Updated String :- ", var1[:6] + 'Python')

执行上述代码后,将生成以下结果 −

Updated String :-  Hello Python

访问我们的 Python - Modify Strings 教程以了解有关更新/修改字符串的更多信息。

Escape Characters

下表是可以用反斜杠标记表示的转义符或不可打印字符的列表。

escape character 得到解释;在单引号和双引号字符串中。

Backslash notation

Hexadecimal character

Description

\a

0x07

Bell or alert

\b

0x08

Backspace

\cx

Control-x

\C-x

Control-x

\e

0x1b

Escape

\f

0x0c

Formfeed

\M-\C-x

Meta-Control-x

\n

0x0a

Newline

\nnn

八进制记法,其中 n 在范围 0.7 中

\r

0x0d

Carriage return

\s

0x20

Space

\t

0x09

Tab

\v

0x0b

Vertical tab

\x

Character x

\xnn

十六进制记法,其中 n 在范围 0.9、a.f 或 A.F 中

String Special Operators

假设字符串变量 a 存储“Hello”,变量 b 存储“Python”,则 −

Operator

Description

Example

+

连接 - 在运算符的任一侧添加值

a + b 将给出 HelloPython

*

重复 - 创建新字符串,连接相同字符串的多个副本

a*2 will give -HelloHello

[]

分片 - 从给定索引中获取字符

a[1] will give e

[ : ]

范围分片 - 从给定范围内获取字符

a[1:4] will give ell

in

成员资格 - 如果一个字符存在于给定字符串中,则返回 true

H in a 将给出 1

not in

成员资格 - 如果一个字符不存在于给定字符串中,则返回 true

M 不会给 1

r/R

原始字符串 - 抑制转义字符的实际含义。原始字符串的语法与普通字符串完全相同,除了原始字符串运算符(字母“r”)位于引号之前。“r”可以是小写(r)或大写 ®,并且必须紧邻第一个引号。

print r'\n' 打印 \n,print R'\n’打印 \n

%

格式 - 执行字符串格式化

See at next section

String Formatting Operator

Python 最酷的功能之一是字符串格式运算符 %。此运算符对于字符串是唯一的,并且弥补了 C 的 printf() 系列中没有函数的缺陷。以下是一个简单的示例:

print ("My name is %s and weight is %d kg!" % ('Zara', 21))

执行上述代码后,将生成以下结果 −

My name is Zara and weight is 21 kg!

以下是可与 % 一起使用的完整符号集列表:

Sr.No.

Format Symbol & Conversion

1

%c character

2

%s 在格式化之前通过 str() 完成字符串转换

3

%i signed decimal integer

4

%d signed decimal integer

5

%u unsigned decimal integer

6

%o octal integer

7

%x hexadecimal integer (lowercase letters)

8

%X hexadecimal integer (UPPERcase letters)

9

%e 指数表示法(使用小写的 'e')

10

%E 指数表示法(使用大写的 'E')

11

%f floating point real number

12

%g %f 和 %e 中的较短者

13

%G %f 和 %E 中的较短者

支持的其他符号和功能列在以下表中:

Sr.No.

Symbol & Functionality

1

参数指定宽度或精度

2

- left justification

3

+ display the sign

4

<sp> 在正数前留一个空格

5

# 添加八进制前导零('0')或十六进制前导'0x’或'0X',具体取决于是否使用了’x’或’X'。

6

0 从左填充零(而不是空格)

7

% '%%' 给你留一个单一的文字 '%'

8

(var) mapping variable (dictionary arguments)

9

m.n. m 是最小总宽度,n 是小数点后要显示的位数(如果适用)

访问我们的 Python - String Formatting 教程,了解格式化字符串的各种方法。

Double Quotes in Python Strings

您想将一些文本作为字符串的一部分嵌入到双引号中,那么字符串本身应该放在单引号中。要嵌入单引号文本,则应在双引号中编写字符串。

Example

var = 'Welcome to "Python Tutorial" from TutorialsPoint'
print ("var:", var)

var = "Welcome to 'Python Tutorial' from TutorialsPoint"
print ("var:", var)

它将生成以下 output

var: Welcome to "Python Tutorial" from TutorialsPoint
var: Welcome to 'Python Tutorial' from TutorialsPoint

Triple Quotes

要使用三引号来形成一个字符串,你可以使用三个单引号或三个双引号 − 两个版本是类似的。

Example

var = '''Welcome to TutorialsPoint'''
print ("var:", var)

var = """Welcome to TutorialsPoint"""
print ("var:", var)

它将生成以下 output

var: Welcome to TutorialsPoint
var: Welcome to TutorialsPoint

Python Multiline Strings

三引号字符串对形成多行字符串很有用。

Example

var = '''
Welcome To
Python Tutorial
from TutorialsPoint
'''
print ("var:", var)

它将生成以下 output

var:
Welcome To
Python Tutorial
from TutorialsPoint

Arithmetic Operators with Strings

字符串是一个非数字数据类型。显然,我们不能对字符串操作数使用算术运算符。在这种情况下,Python 会引发 TypeError。

print ("Hello"-"World")

执行以上程序会产生如下错误 -

>>> "Hello"-"World"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'str'

Getting Type of Python Strings

Python 中的字符串是 str 类的一个对象。它可以用 type() 函数验证。

Example

var = "Welcome To TutorialsPoint"
print (type(var))

它将生成以下 output

<class 'str'>

Built-in String Methods

Python 包含以下内置方法来操作字符串 -

Sr.No.

Methods with Description

1

capitalize() 将字符串的首字母大写。

2

casefold() 将字符串中的所有大写字母转换为小写。与 lower() 类似,但也可以在 UNICODE 字符上使用。

3

center(width, fillchar) 返回一个空格填充的字符串,其中原始字符串居中,总共为 width 列。

4

../python/string_count.html[count(str, beg=0, end=len(string))]Counts how many times str occurs in string or in a substring of string if starting index beg and ending index end are given.

5

../python/string_decode.html[decode(encoding='UTF-8', ), errors=strict]Decodes the string using the codec registered for encoding. encoding defaults to the default string encoding.

6

../python/string_encode.html[encode(encoding='UTF-8', ), errors=strict]Returns encoded string version of string; on error, default is to raise a ValueError unless errors is given with 'ignore' or 'replace'.

7

../python/string_endswith.html[endswith(suffix, beg=0, end=len(string))]Determines if string or a substring of string (if starting index beg and ending index end are given) ends with suffix; returns true if so and false otherwise.

8

expandtabs(tabsize=8) 将字符串中的制表符扩展为多个空格;如果未提供 tabsize,则默认每个制表符 8 个空格。

9

../python/string_find.html[find(str, beg=0 end=len(string))]Determine if str occurs in string or in a substring of string if starting index beg and ending index end are given returns index if found and -1 otherwise.

10

format(*args, **kwargs) 此方法用于格式化当前字符串值。

11

format_map(mapping) 此方法也用于格式化当前字符串,唯一的区别是它使用映射对象。

12

../python/string_index.html[index(str, beg=0, end=len(string))]Same as find(), but raises an exception if str not found.

13

isalnum() 如果字符串至少包含 1 个字符,并且所有字符都是字母数字,则返回 true,否则返回 false。

14

isalpha() 如果字符串至少包含 1 个字符,并且所有字符都是字母,则返回 true,否则返回 false。

15

isascii() 如果字符串中的所有字符都来自 ASCII 字符集,则返回 True。

16

isdecimal() 如果 unicode 字符串仅包含十进制字符,则返回 true,否则返回 false。

17

isdigit() 如果字符串仅包含数字,则返回 true,否则返回 false。

18

isidentifier() 检查字符串是否是有效的 Python 标识符。

19

islower() 如果字符串至少有一个大小写字母且所有大小写字母均为小写,则返回 true,否则返回 false。

20

isnumeric() 如果 Unicode 字符串仅包含数字字符,则返回 true,否则返回 false。

21

isprintable() 检查字符串中的所有字符是否可打印。

22

isspace() 如果字符串仅包含空白字符,则返回 true,否则返回 false。

23

istitle() 如果字符串“标题化”正确,则返回 true,否则返回 false。

24

isupper() 如果字符串至少有一个大小写字母且所有大小写字母均为大写,则返回 true,否则返回 false。

25

join(seq) 使用分隔符字符串将序列 seq 中元素的字符串表示合并(串联)为一个字符串。

26

ljust(width[, fillchar]) 返回一个用空格填充的字符串,其中原始字符串左对齐,总共 width 列。

27

lower() 将字符串中的所有大写字母转换为小写。

28

lstrip() 删除字符串中所有前置空白。

29

maketrans() 返回用于 translate 函数的转换表。

30

partition() 在分隔符第一次出现时将字符串拆分为三个字符串元组。

31

removeprefix() 删除前缀字符串后返回一个字符串。

32

removesuffix() 删除后缀字符串后返回一个字符串。

33

replace(old, new [, max]) 用 new 替换字符串中 old 的所有出现,如果给出 max,最多替换 max 次。

34

../python/string_rfind.html[rfind(str, beg=0, end=len(string))]Same as find(), but search backwards in string.

35

../python/string_rindex.html[rindex( str, beg=0, end=len(string))]Same as index(), but search backwards in string.

36

rjust(width,[, fillchar]) 返回一个用空格填充的字符串,其中原始字符串右对齐,总共 width 列。

37

rpartition() 以分隔符最后出现的位置将字符串拆分为三个字符串元组。

38

rsplit() 从末尾拆分字符串并返回一个子字符串列表。

39

rstrip() 删除字符串的所有尾随空格。

40

../python/string_split.html[split(str="", num=string.count(str))]Splits string according to delimiter str (space if not provided) and returns list of substrings; split into at most num substrings if given.

41

splitlines( num=string.count('\n')) 在所有(或num)换行符处拆分字符串,并返回一个列表,其中每行都已删除了换行符。

42

../python/string_startswith.html[startswith(str, beg=0, end=len(string))]Determines if string or a substring of string (if starting index beg and ending index end are given) starts with substring str; returns true if so and false otherwise.

43

strip([chars]) 对字符串执行 lstrip() 和 rstrip()。

44

swapcase() 反转字符串中所有字母的大小写。

45

title() 返回字符串的“标题大小写”版本,即所有单词都以大写开头,其余为小写。

46

../python/string_translate.html[translate(table, ), deletechars=]Translates string according to translation table str(256 chars), removing those in the del string.

47

upper() 将字符串中的小写字母转换为大写。

48

zfill (width) 返回用零左填充的原始字符串,总共width个字符;用于数字,zfill() 会保留给定的任何符号(减去一个零)。

Built-in Functions with Strings

以下是我们能用于字符串的内置函数 −

Sr.No.

Function with Description

1

len(list) 返回字符串的长度。

2

max(list) 返回字符串str中最大的字母字符。

3

min(list) 返回字符串str中最小的字母字符。