今天,重新翻看了《Python字符串》章节的内容,梳理一下,加深记忆。
一、单引号、双引号、三单引号、三双引号问题
首先,看下面的例子。由输出结果知道,四个字符串虽然是同一内容,但是它们的ID确实不一样的。三、单双、引号,与单双引号,具有不同的内存地址。单引号和双引号相同;三单引号和三双引号相同。
string1 = 'python'
string2 = "python"
string3 = '''
python
'''
string4 = """
python
"""
print(id(string1),id(string2),id(string3),id(string4))
print(string1,string2,string3,string4)
print(string1 is string2)
print(string3 is string4)
print(string1 == string3) # 其实质,两者内容不相同的,根据输出打印信息就可以看出来
print(string1 is string3) # is 比较的是内存地址,因为不相同,所以这里也是错的
### 输出结果:
2761473111280 2761473111280 2761473158384 2761473158384
python python
python
python
True
True
False
[Finished in 488ms]
这里顺便复习了 is 的比较用法。 == 比较的字符串的内容;is 比较的是字符串的地址。
【变形】
如果将三、单双、引号,写在同一行,那么所有均相同。
string1 = 'python'
string2 = "python"
string3 = '''python'''
string4 = """python"""
print(id(string1),id(string2),id(string3),id(string4))
print(string1,string2,string3,string4)
print(string1 is string2)
print(string3 is string4)
print(string1 == string3) # 其实质,两者内容不相同的,根据输出打印信息就可以看出来
print(string1 is string3) # is 比较的是内存地址,因为不相同,所以这里也是错的
### 输出结果是:
1564669883632 1564669883632 1564669883632 1564669883632
python python python python
True
True
True
True
[Finished in 182ms]
二、利用input 数据流输入的注意事项
string1 = input('请输入字符串:')
string2 = input("请输入字符串:")
print(id(string1),id(string2))
print(string1,string2)
print(string1 == string2) # 其实质,两者内容是相同的
print(string1 is string2) # is 比较的是内存地址,两者内容是不同的
### 输出结果:
True
False
三、字符串的运算符
3.1? ? + 运算符-》???拼接符
3.2? ? * 运算符-》? ? 'abc'*5? : 重复5遍
3.3? ? in 运算符 -》 rerult = 'a' in 'name ' ;? rerult = 'ame' in 'name '
3.4? ? not in 运算符 -》?
3.5? ? % 运算符 -》 字符串格式化操作 , print('%s is %s' % ('love', 'python')) 3.6? ? r 保留原格式运算符, print(r'%s说: \'哈哈'), 牵扯转义字符问题
3.7? ?[]? 截取操作。 [0:2]? ?,? ? [:]? ,? ? [3:] ,? ? ?[:6]? ,?
?[-1: -5 : -1 ](其实位置最后一位字符,倒序打印,直至倒数第四个字符打印结束)? ?
[1: 5 :1]?
[5: 0?:1]? : 打印空行?
|