📜  Python中有关字符串string的有趣事实 1

📅  最后修改于: 2020-06-30 04:23:17             🧑  作者: Mango

1.字符串是不可变的
一旦定义了字符串,就无法更改。

# Python3程序显示无法更改字符串 
  
a = 'Geeks'
  
# 显示输出 
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程序显示可以将字符串附加到字符串. 
  
a = 'Geeks'
  
# 显示输出 
print(a) 
a = a + 'for'
  
print(a) # works fine 

输出:

Geeks
Geeksfor

在第二个程序中,解释器将复制原始字符串,然后对其进行处理和修改。因此,表达式a = a +’for’不会更改字符串,而是将变量a重新分配给结果生成的新字符串,并删除前一个字符串。了解使用id()函数。
id()函数用于返回对象的标识。 

# Python3程序显示两个字符串具有相同的标识 
  
string1 = "Hello"
string2 = "Hello"
  
print(id(string1)) 
print(id(string2))

输出: 

93226944 
93226944

string1和string2都指向相同的对象或相同的位置。现在,如果有人尝试修改任何一个字符串,结果将有所不同。 

# 修改字符串 
  
string1 = "Hello"
  
# 字符串1的身份 
print(id(string1)) 
  
string1 += "World"
print(string1) 
  
# 修改后的string1的标识 
print(id(string1)) 

输出: 

93226944
'HelloWorld'
93326432

修改了String1,这与字符串是不可变的这一事实相矛盾,但是修改前后的标识是不同的,这意味着修改后的string1会创建一个新对象,从而确认了字符串是不可变的,因为先前的对象未进行任何更改string1而不是一个新的。

2.创建字符串的三种方法:
Python中的字符串可以使用单引号或双引号或三引号创建。

单引号和双引号在创建字符串时的工作原理相同。谈论三引号时,当我们必须在多行中编写一个字符串并按原样打印而不使用任何转义序列时,将使用这些引号。

# Python3程序以三种不同方式创建字符串并将其连接. 
  
# 单引号字符串 
a = 'Geeks'
  
# 带双引号的字符串 
b = "for"
  
# 带三引号的字符串 
c = '''Geeks a portal  
for geeks'''
  
d = '''He said, "I'm fine."'''
  
print(a) 
print(b) 
print(c) 
print(d) 
  
  
# 使用不同引号创建的字符串的串联 
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.") 
  
# 使用转义序列 
print("He said, \"Welcome to GeeksforGeeks\"")     
  
print('Hey so happy to be here') 
  
# 使用混合引号 
print ('Getting Geeky, "Loving it"') 

输出: 

Hi Mr Geek.
He said, "Welcome to GeeksforGeeks"
Hey so happy to be here
Getting Geeky, "Loving it"

如何打印转义字符?

如果需要打印转义字符(\),则如果用户在字符串解释器中提到它,它将认为它是转义字符,并且不会打印。要打印转义字符,用户必须使用转义字符如示例所示,在“ \”之前。

# 打印转义符 
print (" \\ is back slash ") 

输出:

 \ is back slash