string是什么意思?在python中string是字符串的意思在本教程中,您将学习在Python中创建,格式化,修改和删除string。此外,还将向您介绍各种string操作和函数。
Python中的string是什么?
string是字符序列。
字符只是一个符号。例如,英语具有26个字符。
计算机不处理字符,它们处理数字(二进制)。即使您可能在屏幕上看到字符,它在内部还是作为0和1的组合进行存储和操作的。
字符到数字的这种转换称为编码,而相反的过程是解码。ASCII和Unicode是一些常用的编码。
在Python中,string是Unicode字符序列。引入Unicode包括所有语言中的每个字符并带来统一的编码。您可以从此处了解有关Unicode的更多信息。
如何在Python中创建字符串?
可以通过将字符括在单引号或双引号中来创建string。Python中甚至可以使用三引号,但通常用于表示多行字符串和文档字符串。
1个234567891011121314# all of the following are equivalentmy_string = 'Hello'print(my_string)my_string = "Hello"print(my_string)my_string = '''Hello'''print(my_string)# triple quotes string can extend multiple linesmy_string = """Hello, welcome to the world of Python"""print(my_string)跑由DataCamp提供支持
运行该程序时,输出为:你好 你好 你好 您好,欢迎来到 Python的世界
如何访问字符串中的字符?
我们可以使用索引访问单个字符,并使用切片访问一系列字符。索引从0开始。尝试访问超出索引范围的字符将引发IndexError。索引必须是整数。我们不能使用float或其他类型,这将导致TypeError。
Python允许对其序列进行负索引。
索引-1表示最后一项,-2表示倒数第二项,依此类推。我们可以使用切片运算符(冒号)访问字符串中的一系列项目。
1个234567891011121314str = 'programiz'print('str = ', str)#first characterprint('str[0] = ', str[0])#last characterprint('str[-1] = ', str[-1])#slicing 2nd to 5th characterprint('str[1:5] = ', str[1:5])#slicing 6th to 2nd last characterprint('str[5:-2] = ', str[5:-2])跑由DataCamp提供支持
如果尝试访问超出范围的索引或使用十进制数,则会出现错误。# index must be in range>>> my_string[15] ...IndexError: string index out of range# index must be an integer>>> my_string[1.5] ...TypeError: string indices must be integers
通过考虑索引位于元素之间,可以最好地可视化切片,如下所示。
如果要访问范围,则需要索引,该索引将从字符串中切出一部分。
如何更改或删除字符串?
字符串是不可变的。这意味着字符串的元素一旦分配就无法更改。我们可以简单地将不同的字符串重新分配给相同的名称。>>> my_string = 'programiz'>>> my_string[5] = 'a'...TypeError: 'str' object does not support item assignment>>> my_string = 'Python'>>> my_string'Python'
我们无法删除或删除字符串中的字符。但是使用关键字可以完全删除字符串del。>>> del my_string[1]...TypeError: 'str' object doesn't support item deletion>>> del my_string>>> my_string...NameError: name 'my_string' is not defined
Python字符串操作
字符串可以执行许多操作,这使它成为Python中
两个或多个字符串的串联
将两个或多个字符串连接为单个字符串称为串联。
在+运营商做这在Python。只需将两个字符串文字一起写就可以将它们串联在一起。
在*运算符可以用来重复字符串的特定次数。
1个23456789str1 = 'Hello'str2 ='World!'# using +print('str1 + str2 = ', str1 + str2)# using *print('str1 * 3 =', str1 * 3)跑由DataCamp提供支持
一起编写两个字符串文字也会像+运算符一样将它们串联在一起。
如果要在不同行中连接字符串,可以使用括号。>>> # two string literals together>>> 'Hello ''World!''Hello World!'>>> # using parentheses>>> s = ('Hello '... 'World')>>> s'Hello World'
遍历字符串
使用for循环,我们可以遍历字符串。这是一个计算字符串中“ l”数的示例。
1个2345count = 0for letter in 'Hello World': if(letter == 'l'): count += 1print(count,'letters found')跑由DataCamp提供支持
字符串成员资格测试
我们可以使用关键字来测试字符串中是否存在子字符串in。>>> 'a' in 'program'True>>> 'at' not in 'battle'False
内置函数可与Python一起使用
与序列一起使用的各种内置函数也与字符串一起使用。
一些常用的是enumerate()和len()。该enumerate()函数返回一个枚举对象。它包含成对的字符串中所有项目的索引和值。这对于迭代很有用。
同样,len()返回字符串的长度(字符数)。
1个2345678str = 'cold'# enumerate()list_enumerate = list(enumerate(str))print('list(enumerate(str) = ', list_enumerate)#character countprint('len(str) = ', len(str))跑由DataCamp提供支持
Python字符串格式
转义序列
如果我们想打印一个文本-他说:“那里是什么?”-我们不能使用单引号或双引号。这将导致SyntaxError文本本身包含单引号和双引号。>>> print("He said, "What's there?"")...SyntaxError: invalid syntax>>> print('He said, "What's there?"')...SyntaxError: invalid syntax
解决此问题的一种方法是使用三引号。另外,我们可以使用转义序列。
转义序列以反斜杠开头,并且以不同的方式解释。如果我们使用单引号表示字符串,则必须对字符串内的所有单引号进行转义。双引号也是如此。这是代表上述文本的方法。
1个2345678# using triple quotesprint('''He said, "What's there?"''')# escaping single quotesprint('He said, "What\'s there?"')# escaping double quotesprint("He said,\"What's there?\"")跑由DataCamp提供支持
这是Python支持的所有转义序列的列表。Python中的转义序列转义序列描述
\新队反斜杠和换行符被忽略
\\反斜杠
\'单引号
\“双引号
\一种ASCII铃声
\ bASCII退格键
\FASCII换页
\ nASCII换行
\ rASCII回车
\ tASCII水平制表符
\ vASCII垂直制表符
\ ooo具有八进制值的字符
\ xHH具有十六进制值HH的字符
这里有些例子>>> print("C:\\Python32\\Lib")C:\Python32\Lib>>> print("This is printed\nin two lines")This is printedin two lines>>> print("This is \x48\x45\x58 representation")This is HEX representation
原始字符串忽略转义序列
有时我们可能希望忽略字符串中的转义序列。为此,我们可以将其放置在字符串的前面r或R前面。这意味着它是一个原始字符串,并且其中的任何转义序列都将被忽略。>>> print("This is \x61 \ngood example")This is agood example>>> print(r"This is \x61 \ngood example")This is \x61 \ngood example
格式化字符串的format()方法
format()字符串对象可用的方法在格式化字符串方面非常通用且功能强大。格式字符串包含大括号{}作为占位符或被替换的替换字段。
我们可以使用位置参数或关键字参数来指定顺序。
1个234567891011121314# default(implicit) orderdefault_order = "{}, {} and {}".format('John','Bill','Sean')print('\n--- Default Order ---')print(default_order)# order using positional argumentpositional_order = "{1}, {0} and {2}".format('John','Bill','Sean')print('\n--- Positional Order ---')print(positional_order)# order using keyword argumentkeyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')print('\n--- Keyword Order ---')print(keyword_order)跑由DataCamp提供支持
该format()方法可以具有可选的格式规范。它们使用冒号与字段名称分开。例如,我们可以在给定的空间中左对齐<,右对齐>或^将字符串居中。我们还可以将整数格式化为二进制,十六进制等,并且浮点数可以四舍五入或以指数格式显示。您可以使用大量的格式。请访问此处以获取该format()>>> # formatting integers>>> "Binary representation of {0} is {0:b}".format(12)'Binary representation of 12 is 1100'>>> # formatting floats>>> "Exponent representation: {0:e}".format(1566.345)'Exponent representation: 1.566345e+03'>>> # round off>>> "One third is: {0:.3f}".format(1/3)'One third is: 0.333'>>> # string alignment>>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham')'|butter | bread | ham|'
旧样式格式
我们甚至可以像sprintf()在C编程语言中使用的旧样式一样格式化字符串。我们使用%运算符来完成此任务。>>> x = 12.3456789>>> print('The value of x is %3.2f' %x)The value of x is 12.35>>> print('The value of x is %3.4f' %x)The value of x is 12.3457
常见的Python字符串方法
字符串对象有许多可用的方法。format()我们上面提到的方法就是其中之一。一些常用的方法有lower(),upper(),join(),split(),find(),replace()等。这里是所有的完整列表内置的方法在Python字符串工作。>>> "PrOgRaMiZ".lower()'programiz'>>> "PrOgRaMiZ".upper()'PROGRAMIZ'>>> "This will split all words into a list".split()['This', 'will', 'split', 'all', 'words', 'into', 'a', 'list']>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])'This will join all words into a string'>>> 'Happy New Year'.find('ew')7>>> 'Happy New Year'.replace('Happy','Brilliant')'Brilliant New Year'