Python字符串,,字符串是Python


字符串是Python中最受欢迎、最常使用的数据类型。可以通过用引号括起字符来创建它们。 Python将单引号与双引号相同。创建字符串和向一个变量赋值一样简单。 例如 -

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

1.访问字符串中的值

Python不支持字符类型; 字符会被视为长度为1的字符串,因此也被认为是一个子字符串。要访问子串,请使用方括号的切片加上索引或直接使用索引来获取子字符串。 例如 -

#!/usr/bin/python3var1 = ‘Hello World!‘var2 = "Python Programming"print ("var1[0]: ", var1[0])print ("var2[1:5]: ", var2[1:5]) # 切片加索引

当执行上述代码时,会产生以下结果 -

var1[0]:  Hvar2[1:5]:  ytho

2.更新字符串

可以通过将变量分配给另一个字符串来“更新”现有的字符串。 新值可以与其原值相关或完全不同的字符串。 例如 -

#!/usr/bin/python3var1 = ‘Hello World!‘print ("Updated String :- ", var1[:6] + ‘Python‘)

当执行上述代码时,会产生以下结果 -

Updated String :-  Hello Python

3.转义字符

下表是可以用反斜杠表示法表示转义或不可打印字符的列表。单引号以及双引号字符串的转义字符被解析。

反斜线符号十六进制字符描述/说明
\a0x07铃声或警报
\b0x08退格
\cxControl-x
\C-xControl-x
\e0x1bEscape
\f0x0c换页
\M-\C-xMeta-Control-x
\n0x0a新一行
\nnn八进制符号,其中n在0.7范围内
\r0x0d回车返回
\s0x20空格
\t0x09制表符
\v0x0b垂直制表符
\x字符x
\xnn十六进制符号,其中n在0~9,a~f或A~F范围内

4.字符串特殊运算符

假设字符串变量a保存字符串值’Hello‘,变量b保存字符串值’Python‘,那么 -

运算符 说明示例
+连接 - 将运算符的两边的值添加a + b结果为HelloPython
*重复 - 创建新字符串,连接相同字符串的多个副本a*2结果为HelloHello
[]切片 - 给出指定索引中的字符串值,它是原字符串的子串。a[1]结果为e
[:]范围切片 - 给出给定范围内的子字符串a[1:4]结果为ell
in成员关系 - 如果给定字符串中存在指定的字符,则返回true‘H‘ in a结果为1
not in成员关系 - 如果给定字符串中不存在指定的字符,则返回true‘Y‘ not in a结果为1
r/R原始字符串 - 抑制转义字符的实际含义。原始字符串的语法与正常字符串的格式完全相同,除了原始字符串运算符在引号之前加上字母“r”。 “r”可以是小写(r)或大写(R),并且必须紧靠在第一个引号之前。print(r‘\n‘)将打印\n,或者print(R‘\n‘)将打印\n,要注意的是如果不加r或R作为前缀,打印的结果就是一个换行。
%格式 - 执行字符串格式化请参见本文第5节

5.字符串格式化运算符

Python最酷的功能之一是字符串格式运算符%。 这个操作符对于字符串是独一无二的,弥补了C语言中printf()系列函数。 以下是一个简单的例子 -

#!/usr/bin/python3print ("My name is %s and weight is %d kg!" % (‘Maxsu‘, 71))

当执行上述代码时,会产生以下结果 -

My name is Maxsu and weight is 71 kg!

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

编号格式化符号转换
1%c字符
2%s在格式化之前通过str()函数转换字符串
3%i带符号的十进制整数
4%d带符号的十进制整数
5%u无符号十进制整数
6%o八进制整数
7%x十六进制整数(小写字母)
8%X十六进制整数(大写字母)
9%e指数符号(小写字母’e‘)
10%E指数符号(大写字母’E‘
11%f浮点实数
12%g%f和%e
13%G%f和%E

其他支持的符号和功能如下表所列 -

编号符号功能
1*参数指定宽度或精度
2-左对齐
3+显示标志或符号
4<sp>在正数之前留空格
5#根据是否使用“x”或“X”,添加八进制前导零(‘0‘)或十六进制前导’0x‘或’0X‘。
60使用零作为左边垫符(而不是空格)
7%‘%%‘留下一个文字“%”
8(var)映射变量(字典参数)
9m.n.m是最小总宽度,n是小数点后显示的位数(如果应用)

6.三重引号

Python中的三重引号允许字符串跨越多行,包括逐字记录的新一行,TAB和任何其他特殊字符。

三重引号的语法由三个连续的单引号或双引号组成。

#!/usr/bin/python3para_str = """this is a long string that is made up ofseveral lines and non-printable characters such asTAB ( \t ) and they will show up that way when displayed.NEWLINEs within the string, whether explicitly given likethis within the brackets [ \n ], or just a NEWLINE withinthe variable assignment will also show up."""print (para_str)

当执行上述代码时,会产生以下结果。注意每个单独的特殊字符如何被转换成其打印形式,它是直到最后一个NEWLINEs在“up”之间的字符串的末尾,并关闭三重引号。 另请注意,NEWLINEs可能会在一行或其转义码(\n)的末尾显式显示回车符 -

this is a long string that is made up ofseveral lines and non-printable characters such asTAB (    ) and they will show up that way when displayed.NEWLINEs within the string, whether explicitly given likethis within the brackets [ ], or just a NEWLINE withinthe variable assignment will also show up.

原始字符串根本不将反斜杠视为特殊字符。放入原始字符串的每个字符都保持所写的方式 -

#!/usr/bin/python3print (‘C:\\nowhere‘)

当执行上述代码时,会产生以下结果 -

C:\nowhere

现在演示如何使用原始的字符串。将表达式修改为如下 -

#!/usr/bin/python3print (r‘C:\\nowhere‘)

当执行上述代码时,会产生以下结果 -

C:\\nowhere

7.Unicode字符串

Python 3中,所有的字符串都用Unicode表示。在Python 2内部存储为8位ASCII,因此需要附加’u‘使其成为Unicode,而现在不再需要了。

内置字符串方法

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

编号方法说明
1capitalize()把字符串的第一个字母转为大写
2center(width, fillchar)返回使用fillchar填充的字符串,原始字符串以总共width列为中心。
3count(str, beg = 0,end = len(string))计算字符串中出现有多少次str或字符串的子字符串(如果开始索引beg和结束索引end,则在beg~end范围匹配)。
4bytes.decode(encoding="utf-8", errors="strict")Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
5encode(encoding = ‘UTF-8’,errors = ‘strict’)返回字符串的编码字符串版本; 在错误的情况下,默认是抛出ValueError,除非使用’ignore‘或’replace‘给出错误。
6endswith(suffix, beg = 0, end = len(string))确定字符串或字符串的子字符串(如果启动索引结束和结束索引结束)都以后缀结尾; 如果是则返回true,否则返回false。
7expandtabs(tabsize = 8)将字符串中的制表符扩展到多个空格; 如果没有提供tabize,则默认为每个制表符为8个空格。
8find(str, beg = 0 end = len(string))如果索引beg和结束索引end给定,则确定str是否在字符串或字符串的子字符串中,如果找到则返回索引,否则为-1。
9index(str, beg = 0, end = len(string))与find()相同,但如果没有找到str,则引发异常。
10isalnum()如果字符串至少包含1个字符,并且所有字符均为数字,则返回true,否则返回false。
11isalpha()如果字符串至少包含1个字符,并且所有字符均为字母,则返回true,否则返回false。
12isdigit()如果字符串只包含数字则返回true,否则返回false。
13islower()如果字符串至少包含1个字母,并且所有字符均为小写,则返回true,否则返回false。
14isnumeric()如果unicode字符串只包含数字字符,则返回true,否则返回false。
15isspace()如果字符串只包含空格字符,则返回true,否则返回false。
16istitle()如果字符串正确“标题大小写”,则返回true,否则返回false。
17isupper()如果字符串至少包含一个可变大小写字符,并且所有可变大小写字符均为大写,则返回true,否则返回false。
18join(seq)将序列seq中的元素以字符串表示合并(并入)到具有分隔符字符串的字符串中。
19len(string)返回字符串的长度
20ljust(width[, fillchar])返回一个空格填充的字符串,原始字符串左对齐到总共width列。
21lower()将字符串中的所有大写字母转换为小写。
22lstrip()删除字符串中的所有前导空格
23maketrans()返回在translate函数中使用的转换表。
24max(str)从字符串str返回最大字母字符。
27replace(old, new [, max])如果给定max值,则用new或最多最大出现替换字符串中所有出现的旧字符(old)。
28rindex( str, beg = 0, end = len(string))与index()相同,但在字符串中向后搜索。
29rjust(width,[, fillchar])返回一个空格填充字符串,原始字符串右对齐到总共宽度(width)列。
30rstrip()删除字符串的所有尾随空格。
31split(str="", num=string.count(str))根据分隔符str(空格,如果没有提供)拆分字符串并返回子字符串列表; 如果给定,最多分割为num子串。
32splitlines( num=string.count(‘\n’)))”)全部拆分字符串(或num)新行符,并返回每行的列表,并删除新行符。
33startswith(str, beg=0,end=len(string))确定字符串或字符串的子字符串(如果给定起始索引beg和结束索引end)以str开头; 如果是则返回true,否则返回false。
34strip([chars])对字符串执行lstrip()和rstrip()
35swapcase()反转在字符串中的所有字母大小写,即小写转大写,大写转小写。
36title()返回字符串的标题版本,即所有单词第一个字母都以大写开头,其余的都是小写的。
37translate(table, deletechars=根据转换表STR(256个字符),除去那些在del字符串转换字符串。
38upper()将字符串中的小写字母转换为大写。
39zfill(width)返回原始字符串,左边填充为零,总共有宽度(width)字符; 对于数字zfill()保留给定的任何符号(少于一个零)。
40isdecimal()如果unicode字符串只包含十进制字符,则返回true,否则返回false。

Python字符串

评论关闭