1. 字符串中的地址问题
1.1 三引号会重新分配空间
str1 = 'abc'
str2 = "abc"
str3 = '''abc
'''
print(str1, str2, str3)
print(id(str1), id(str2), id(str3))
# 输出结果为
# abc abc abc
#6720944 6720944 31420080
1.2 input函数会重新分配空间
str1 = 'abc'
str2 = input() #输入abc
print(id(str1), id(str2))
#两个id不同
2. 运算符
2.1 in和not in运算符
in 可以判断某个字符串A是否在字符串B中,在则返回真反之假
print("s" in "seven")
print("a" not in "seven")
2.2 +、+=、*、%、r运算符
2.3 []运算符和[:]截取运算符
[]运算符就起到索引的作用
而截取运算符用来进行字符串的切片
并且对字符串使用索引或者切片时是不能赋值的
比如"abcd"[1] = 'z’就是非法的
2.3.1 字符串的索引
字符串用索引时 只能当右值不能当左值。
字符串索引有两种表示形式一种是正数一种是负数。
正数索引就是字符串的第一个字符的索引是从0开始,向后依次递增。
负数索引就是字符串的倒数第一个字符的索引是从-1开始,向前依次递减。
例如字符串str = “abcd”
str[0]是’a’ str[-1]是’d’
str[1]是’b’ str[-2]是‘c’
str[2]是‘c’ str[-3] 是’b’
str[3]是’d’ str[-4]是’a’
2.3.2 字符串的切片
[strat : end] 是左闭右开的形式 和range一样
[ : ]是代表整个字符串
[2 : ]是代表从第二个字符串到结束(包含结束)
[ : 5]是代表从第一个字符到第五个字符(不包含第五个字符)
2.3.3 字符串的逆序
[start : end:-1]只要在截取运算符后加个:-1 就是从开始位置向前取值(依次递减)一直取到结束位置
不加:-1的情况默认是从开始位置向后取值依次递增一直到结束位置
若[start : end : 3]则是隔三个输取1次