亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 字符串

Python 字符串

在本教程中,您将学习在 Python 中创建、格式化、修改和删除字符串。此外,还将向您介绍各种字符串操作和函数。

视频:Python 字符串

Python 中的字符串是什么?

字符串是一个字符序列。

字符只是一个符号。例如,英语有 26 个字符。

计算机不处理字符,它们处理数字(二进制​​)。即使您可能会在屏幕上看到字符,但在内部它是作为 0 和 1 的组合存储和操作的。

这种将字符转换为数字的过程称为编码,相反的过程称为解码。 ASCII 和 Unicode 是一些常用的编码。

在 Python 中,字符串是 Unicode 字符的序列。引入 Unicode 以包含所有语言中的每个字符并带来编码的统一性。你可以从 Python Unicode 了解 Unicode。


如何在 Python 中创建字符串?

可以通过将字符括在单引号或双引号中来创建字符串。在 Python 中甚至可以使用三引号,但通常用于表示多行字符串和文档字符串。

# defining strings in Python
# all of the following are equivalent
my_string = 'Hello'
print(my_string)

my_string = "Hello"
print(my_string)

my_string = '''Hello'''
print(my_string)

# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
           the world of Python"""
print(my_string)

当你运行程序时,输出将是:

Hello
Hello
Hello
Hello, welcome to
           the world of Python

如何访问字符串中的字符?

我们可以使用索引访问单个字符,使用切片访问一系列字符。索引从 0 开始。尝试访问超出索引范围的字符将引发 IndexError .索引必须是整数。我们不能使用浮点数或其他类型,这将导致 TypeError .

Python 允许对其序列进行负索引。

-1的索引 指最后一项,-2 到倒数第二个项目,依此类推。我们可以使用切片运算符 : 访问字符串中的一系列项目 (冒号)。

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])

当我们运行上面的程序时,我们得到如下输出:

str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am

如果我们尝试访问超出范围的索引或使用整数以外的数字,就会出错。

# 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 中可用数据类型的更多信息,请访问:Python 数据类型

两个或多个字符串的串联

将两个或多个字符串连接成一个字符串称为串联。

+ 运算符在 Python 中执行此操作。简单地将两个字符串文字写在一起也可以将它们连接起来。

* 运算符可用于将字符串重复给定次数。

# Python String Operations
str1 = 'Hello'
str2 ='World!'

# using +
print('str1 + str2 = ', str1 + str2)

# using *
print('str1 * 3 =', str1 * 3)

当我们运行上面的程序时,我们得到如下输出:

str1 + str2 =  HelloWorld!
str1 * 3 = HelloHelloHello

将两个字符串文字写在一起也可以像 + 一样将它们连接起来 运营商。

如果我们想连接不同行的字符串,可以使用括号。

>>> # two string literals together
>>> 'Hello ''World!'
'Hello World!'

>>> # using parentheses
>>> s = ('Hello '
...      'World')
>>> s
'Hello World'

遍历字符串

我们可以使用 for 循环遍历字符串。这是一个计算字符串中 'l' 数量的示例。

# Iterating through a string
count = 0
for letter in 'Hello World':
    if(letter == 'l'):
        count += 1
print(count,'letters found')

当我们运行上面的程序时,我们得到如下输出:

3 letters found

字符串成员资格测试

我们可以使用关键字 in 来测试字符串中是否存在子字符串 .

>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False

使用 Python 的内置函数

各种适用于序列的内置函数也适用于字符串。

一些常用的是enumerate()len() . enumerate() 函数返回一个枚举对象。它包含字符串中所有项目的索引和值作为对。这对于迭代很有用。

同样,len() 返回字符串的长度(字符数)。

str = 'cold'

# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)

#character count
print('len(str) = ', len(str))

当我们运行上面的程序时,我们得到如下输出:

list(enumerate(str) =  [(0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')]
len(str) =  4

Python 字符串格式化

转义序列

如果我们想打印类似 He said, "What's there?" 的文本 ,我们既不能使用单引号也不能使用双引号。这将导致 SyntaxError 因为文本本身包含单引号和双引号。

>>> print("He said, "What's there?"")
...
SyntaxError: invalid syntax
>>> print('He said, "What's there?"')
...
SyntaxError: invalid syntax

解决此问题的一种方法是使用三引号。或者,我们可以使用转义序列。

转义序列以反斜杠开头,并有不同的解释。如果我们用单引号来表示一个字符串,那么字符串内的所有单引号都必须被转义。双引号的情况类似。这是表示上述文本的方法。

# using triple quotes
print('''He said, "What's there?"''')

# escaping single quotes
print('He said, "What\'s there?"')

# escaping double quotes
print("He said, \"What's there?\"")

当我们运行上面的程序时,我们得到如下输出:

He said, "What's there?"
He said, "What's there?"
He said, "What's there?"

这是 Python 支持的所有转义序列的列表。

转义序列 说明
\换行 反斜杠和换行符被忽略
\\ 反斜杠
\' 单引号
\" 双引号
\a ASCII 钟
\b ASCII 退格
\f ASCII 换页
\n ASCII 换行
\r ASCII 回车
\t ASCII 水平制表符
\v ASCII 垂直制表符
\ooo 八进制字符ooo
\xHH 十六进制值HH的字符

这里有一些例子

>>> print("C:\\Python32\\Lib")
C:\Python32\Lib

>>> print("This is printed\nin two lines")
This is printed
in two lines

>>> print("This is \x48\x45\x58 representation")
This is HEX representation

忽略转义序列的原始字符串

有时我们可能希望忽略字符串中的转义序列。为此,我们可以放置 rR 在字符串前面。这意味着它是一个原始字符串,其中的任何转义序列都将被忽略。

>>> print("This is \x61 \ngood example")
This is a
good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example

格式化字符串的format()方法

format() 可用于字符串对象的方法在格式化字符串方面非常通用且功能强大。格式字符串包含大括号 {} 作为被替换的占位符或替换字段。

我们可以使用位置参数或关键字参数来指定顺序。

# Python string format() method

# default(implicit) order
default_order = "{}, {} and {}".format('John','Bill','Sean')
print('\n--- Default Order ---')
print(default_order)

# order using positional argument
positional_order = "{1}, {0} and {2}".format('John','Bill','Sean')
print('\n--- Positional Order ---')
print(positional_order)

# order using keyword argument
keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Keyword Order ---')
print(keyword_order)

当我们运行上面的程序时,我们得到如下输出:

--- Default Order ---
John, Bill and Sean

--- Positional Order ---
Bill, John and Sean

--- Keyword Order ---
Sean, Bill and John

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'

Python

  1. C# 字符串
  2. Python 运算符
  3. Python字典
  4. Java 字符串
  5. Java 枚举字符串
  6. Python 字符串:替换、连接、拆分、反转、大写和小写
  7. Python String strip() 函数与示例
  8. 带有示例的 Python 字符串计数()
  9. Python String format() 举例说明
  10. Python 字符串长度 | len() 方法示例
  11. Python String find() 方法及示例
  12. Python 中的 Enumerate() 函数:循环、元组、字符串(示例)