万恶之源-03-基本数据类型之字符串

字符串的应用比较多,所以单独拿出来

字符串(str)
字符串是不可变对象. 所有操作都是产生新字符串返回
把字符连成串. 在python中用', ", ''', """引起来的内容被称为字符串.
--------------------------------------------------

s = "_".join(li) 将字符拼接成完整的字符串,以'_'拼接

4.1 切片和索引
1. 索引. 索引就是下标. 切记, 下标从0开始

# 0123456 7 8
s1 = "python最牛B"
print(s1[0]) # 获取第0个
print(s1[1])
print(s1[2])
print(s1[3])
print(s1[4])
print(s1[5])
print(s1[6])
print(s1[7])
print(s1[8])
# print(s1[9]) # 没有9, 越界了. 会报错
print(s1[-1]) # -1 表示倒数.
print(s1[-2]) # 倒数第二个 

------------------------------------------------------
2. 切片, 我们可以使用下标来截取部分字符串的内容
语法: str[start: end]
规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end

----------------------------------------------------------
s2 = "python最牛B"
8 1000 4
print(s2[0:3]) # 从0获取到3. 不包含3. 结果: pyt
print(s2[6:8]) # 结果 最牛
print(s2[6:9]) # 最大是8. 但根据顾头不顾腚, 想要取到8必须给9
print(s2[6:10]) # 如果右边已经过了最大值. 相当于获取到最后
print(s2[4:]) # 如果想获取到最后. 那么最后一个值可以不给.
print(s2[-1:-5]) # 从-1 获取到 -5 这样是获取不到任何结果的. 从-1向右数. 你怎么数也数不到-5
print(s2[-5:-1]) # 牛b, 取到数据了. 但是. 顾头不顾腚. 怎么取最后一个呢?
print(s2[-5:]) # 什么都不写就是最后了
print(s2[:-1]) # 这个是取到倒数第一个
print(s2[:]) # 原样输出
----------------------------------------------------------------  

跳着截取
# 跳着取, 步长

print(s2[1:5:2]) # 从第一个开始取, 取到第5个,每2个取1个, 结果: yh, 分析: 1:5=>
ytho => yh
print(s2[:5:2]) # 从头开始到第五个. 每两个取一个
print(s2[4::2]) # 从4开始取到最后. 每两个取一个
print(s2[-5::2]) # 从-5取到最后.每两个取一个
print(s2[-1:-5]) # -1:-5什什么都没有. 因为是从左往右获取的.
print(s2[-1:-5:-1]) # 步长是-1. 这时就从右往左取值了
print(s2[-5::-3]) # 从倒数第5个开始. 到最开始. 每3个取一个, 结果oy  

步长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1
切片语法:
str[start:end:step]
start: 起始位置
end: 结束位置
step:步长

小总结:

s1.capitalize() #首字母大写
s1.lower() # 全部转换成小写
s1.upper() # 全部转换成大写
s1.swapcase() # 大小写互相转
s1.casefold() # 转换成小写
s1.title() #在全文中所有的首字母都大写
s5.center(10, "*") 拉长成10, 把原字符串串放中间.其余位置补*
s7.strip() # 去掉左右两端的空格
s7.lstrip() # 去掉左边空格
s7.rstrip() # 去掉右边空格
s7.strip("abc") # defg 也可以指定去掉两边的元素

  

s8.replace('alex', '金角大王') # 把alex替换成金角大王
s8.replace('i', 'SB', 2) # 把i替换成SB, 替换2个
s9.split(",") # 字符串切割, 根据,进行切割 


# 格式化输出

s12 = "我叫%s, 今年年%d岁了了, 我喜欢%s" % ('sylar', 18, '周杰伦') # 之前的写法
print(s12)
s12 = "我叫{}, 今年年{}岁了了, 我喜欢{}".format("周杰伦", 28, "周润发") # 按位置格式化
print(s12)
s12 = "我叫{0}, 今年年{2}岁了了, 我喜欢{1}".format("周杰伦", "周润发", 28) # 指定位置
print(s12)
s12 = "我叫{name}, 今年年{age}岁了了, 我喜欢{singer}".format(name="周杰伦", singer="周润
发", age=28) # 指定关键字
print(s12)  

查找

s13.startswith("sylar") # 判断是否以sylar开头
s13.endswith("语言") # 是否以'语言'结尾
s13.count("a") # 查找"a"出现的次数
s13.find("sylar") # 查找'sylar'出现的位置
s13.index("sylar") # 求索引位置. 注意. 如果找不不到索引. 程序会报错
s13.get("sylar") # 求索引位置. 注意. 如果找不不到索引. 程序不会报错  

5. 条件判断

# 是否由字母和数字组成
print(s14.isalnum())
# 是否由字母组成
print(s14.isalpha())
# 是否由数字组成, 不不包括⼩小数点
print(s14.isdigit())
print(s14.isdecimal())
print(s14.isnumeric()) # 这个比较牛B. 中文都识别. 

6. 计算字符串的长度

len(s18) # 计算字符串的长度
注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就行了

posted @ 2018-09-17 21:15  zpf666  阅读(138)  评论(0编辑  收藏  举报