关于Python中字符串的有趣事实 |设置 1
1. 字符串是不可变的
一旦定义了字符串,就不能更改它。
# Python3 program to show that
# string cannot be changed
a = 'Geeks'
# output is displayed
print(a)
a[2] = 'E'
print(a) # causes error
输出:
Traceback (most recent call last):
File "/home/adda662df52071c1e472261a1249d4a1.py", line 9, in
a[2] = 'E'
TypeError: 'str' object does not support item assignment
但下面的代码工作正常。
# Python3 program to show that
# a string can be appended to a string.
a = 'Geeks'
# output is displayed
print(a)
a = a + 'for'
print(a) # works fine
输出:
Geeks
Geeksfor
在第二个程序中,解释器复制原始字符串,然后对其进行处理和修改。因此,表达式a = a +'for'不会更改字符串,而是将变量a重新分配给结果生成的新字符串并删除前一个字符串。
了解使用 id()函数。
id()函数用于返回对象的标识。
# Python3 program to show that
# both string hold same identity
string1 = "Hello"
string2 = "Hello"
print(id(string1))
print(id(string2))
输出:
93226944
93226944
string1 和 string2 都指向同一个对象或同一个位置。现在如果有人尝试修改任何一个字符串,结果都会不同。
# Modifying a string
string1 = "Hello"
# identity of string1
print(id(string1))
string1 += "World"
print(string1)
# identity of modified string1
print(id(string1))
输出:
93226944
'HelloWorld'
93326432
修改了String1,这与字符串不可变的事实相矛盾,但修改前后的身份不同。这意味着修改后创建了string1的新对象,这证实了字符串是不可变的事实,因为之前的对象没有进行任何更改string1 而是创建一个新的。
2. 创建字符串的三种方式:
Python中的字符串可以使用单引号或双引号或三引号创建。
单引号和双引号对于字符串创建的工作方式相同。谈到三引号,当我们必须在多行中写入字符串并按原样打印而不使用任何转义序列时使用它们。
# Python3 program to create
# strings in three different
# ways and concatenate them.
# string with single quotes
a = 'Geeks'
# string with double quotes
b = "for"
# string with triple quotes
c = '''Geeks a portal
for geeks'''
d = '''He said, "I'm fine."'''
print(a)
print(b)
print(c)
print(d)
# Concatenation of strings created
# using different quotes
print(a + b + c)
输出:
Geeks
for
Geeks a portal
for geeks
He said, "I'm fine."
GeeksforGeeks a portal
for geeks
如何在屏幕上打印单引号或双引号?
我们可以通过以下两种方式做到这一点:
- 第一个是使用转义字符来显示附加引号。
- 第二种方法是使用混合引号,即当我们要打印单引号时,使用双引号作为分隔符,反之亦然。
例子-
print("Hi Mr Geek.")
# use of escape sequence
print("He said, \"Welcome to GeeksforGeeks\"")
print('Hey so happy to be here')
# use of mix quotes
print ('Getting Geeky, "Loving it"')
输出:
Hi Mr Geek.
He said, "Welcome to GeeksforGeeks"
Hey so happy to be here
Getting Geeky, "Loving it"
如何打印转义字符?
如果需要打印转义字符(\),那么如果用户在字符串解释器中提及它,则会将其视为转义字符而不会打印。为了打印转义字符,用户必须使用转义字符'\'之前,如示例所示。
# Print Escape character
print (" \\ is back slash ")
输出:
\ is back slash