# Python的字符，实质是一个有序的字符序列
# 1.获取字符串长度：（长度-->字符串中字符的个数）
# len是获取序列长度的内置函数
count = len('和dw\ne123*&(^')
print(count)


# 2.通过下标获取字符串中的某一个字符
# 字符串中每个字符都对应一个下标（索引），可以用索引值去获取固定的字符:字符[索引值]
# 'abc' --> a:0 ,b:1 ,c:2
str1 = 'abcd'
print(str1[3])  # d


# 下标的范围：0 ~ 字符串长度 -1；-1 ~ -字符串的长度
# 获取字符的时候，索引值不能操作索引的范围，否则会报IndexError
# print(str1[5])  IndexError: string index out of range

print(str1[-1])  #获取字符串str1中的最后一个字符
print(str1[-3])  #获取字符串str1中的倒数第三个字符

# 3. 获取字符串中的部分字符：
"""
字符串[开始下标：结束下标]  --->获取字符串中从开始下标到结束下标的字符
(包含开始下标对应的字符，不包含结束下标对应的字符)
字符串[开始下标：结束下标：步进]

"""
# a.开始和结束下标都有值：开始下标对应的字符，要在结束下标对应的字符前面(步进是正数)
str3 = 'hello Python'
print(str3[6:12])   #Python
print(str3[-6:12])  #Python

# b.开始下标省略：从字符串的最前面取到结束下标前
print('sssds'+str3[:4])

# c.结束下标省略：从开始位置获取到字符串结束
print(str3[4:])

# e.两个都省略：获取整个字符串的内容
print(str3[:])

# f.步进每两个取一个
print(str3[::2])  #hloPto
# 当步进是负数的时候，开始下标和结束下标性质相反
print(str3[3:1:-1])
print(str3[::-2])
print(str3[::-1])  #字符串倒序