python学习,字符串的存储,切片访问

python中字符串的存储,切片访问,python中访问一个数据地址的方法

在python中字符串的存储在一个保留区,如果把该字符串赋值给另一个字符串,相当于把地址赋值给另一个变量。更改一个字符串,另一个也会更改。
#_*_cording.utf-8_*_
# 开发团队:开心科研
# 开发人员:Administrator
# 开发时间:2021/6/13 001317:32
# 文件名称:char_address
# 开发工具:PyCharm
"验证字符串的地址是否一致"
"在python中有一个字符串的保留区,里面放着字符串"
s1 =hello   #  此处相当于把hello的地址传给了s1
s2 = s1       # 此处相当于把s1内容——hello的地址转给了s2
s3 =hello   # 此处是在字符串保留区中找到hello的地址,传给s3   故此时s1,s2,s3的地址是一致的
s4=hello1
print(id(s1))   # id 输出的是变量的地址
print(id(s2))
print(id(s3))
print(id(s4))

# is比较的是内存地址
print(s1 is s2)

# 切片机制,字符串和列表
# str[start:end:step]  start 表示起点,end表示终点,step的正负值表示方向,step表示移动步长
s=ABCDEFG
print(s[1:4])    # 截取是需要注意,前面包括,后面不包含
print(s[:5])
print(s[-3:-1])
print(s[-3:7])
print(s[-3:])

print(id(s[-3:-1]))
print(id(s[-3:7]))
print(id(s[-3:]))
# id在python中访问的是地址
x =s[:]
print(id(x))
print(id(s))

输出:

2061848166272      # 地址可能和你电脑上不一样,不同电脑可能不一样
2061848166272
2061848166272
2061854219544

True
BCD
ABCDE
EF
EFG
EFG
2061854220216
2061854220216
2061854220216
2061854217192
2061854217192
is是地址比较,是对两个变量的地址是否一致。 id是返回变量在内存中的地址。
经验分享 程序员 微信小程序 职场和发展