Python学习笔记之字符串操作

71 次浏览 14 分钟阅读 0 个喜欢
# 字符串的相关操作
# 字符串的拼接
strvar = '张宇童博客'
strvar1 = ' - '
strvar2 = '前沿技术博客'
res = strvar + strvar1 + strvar2
print(res) # 张宇童博客 - 前沿技术博客

res = '重要的事情说三遍: ' + (res+',')*3
print(res) # 重要的事情说三遍: 张宇童博客 - 前沿技术博客,张宇童博客 - 前沿技术博客,张宇童博客 - 前沿技术博客,

# 字符串的索引 [start, end, step]
print(res[0]) # 重
print(res[-1]) # ,

# 字符串的切片(截取)
print(res[10:24]) # 张宇童博客 - 前沿技术博客
print(res[10::3])

# [:] 截取所有字符串 [::]
print(res[:]) # 重要的事情说三遍: 张宇童博客 - 前沿技术博客,张宇童博客 - 前沿技术博客,张宇童博客 - 前沿技术博客,
print(res[::])

# 字符串的格式化 str.format()
# 1、顺序传参 {}占位符
strvar = '{} - {}博客 URL:{}'
res = strvar.format('张宇童','前沿技术','http://www.zyt8.cn')
print(res) # 张宇童 - 前沿技术博客 URL:http://www.zyt8.cn

# 2、索引传参
strvar = '{2} - {0}博客 URL:{1}'
res = strvar.format('前沿技术','http://www.zyt8.cn','张宇童')
print(res) # 张宇童 - 前沿技术博客 URL:http://www.zyt8.cn

# 3、关键字传参
strvar = '{title} - {desc}博客 URL:{url}'
res = strvar.format(title = '张宇童', desc = '前沿技术', url = 'http://www.zyt8.cn')
print(res) # 张宇童 - 前沿技术博客 URL:http://www.zyt8.cn

# 4、容器类型数据传参
strvar = '{0[0]} - {0[1]}博客 URL:{0[2]}'
res = strvar.format(['张宇童','前沿技术','http://www.zyt8.cn'])
print(res) # 张宇童 - 前沿技术博客 URL:http://www.zyt8.cn

strvar = '{0[0]} - {0[1]}博客 URL:{0[2]}'
res = strvar.format(('张宇童','前沿技术', 'http://www.zyt8.cn'))
print(res) # 张宇童 - 前沿技术博客 URL:http://www.zyt8.cn

# format填充符号的使用
# < 文字居左 > 文字居右 ^ 文字居中
# 语法:{关键字:要填充的字符 符号 次数}
'''
    {title: 张宇童<10}
    title: 关键字
    张宇童: 填充的关键字
    符  号: 文字居左
    10   :  title所指代一个字符上填充的符号一共十个
'''
strvar = '大家都在{title:*^10}提高了编程水平'
res = strvar.format(title = '张宇童blog')
print(res) # 大家都在*张宇童blog**提高了编程水平

strvar = '我的手机号是:{phoneFirst:*<5}{phoneLast:*>6}'
res = strvar.format(phoneFirst = '139', phoneLast = '8888')
print(res) # 139****8888

# 进制转换的符号使用
# :d :f :s :,
strvar = '{}是第{:d}次来到本blog'
res = strvar.format('小明',9999)
print(res) # 小明是第9999次来到本blog

strvar = '{}每一次来到本博客都打赏{:.2f}元人民币'
res = strvar.format('小红',100)
print(res) # 小红每一次来到本博客都打赏100.00元人民币

strvar = '{}每一次来都不由自主的{:s}赞叹'
res = strvar.format('小蓝','啧啧')
print(res) # 小蓝每一次来都不由自主的啧啧赞叹

strvar = '{}在马路边捡到了{:,}元交给了本博主'
res = strvar.format('小花',3999999999)
print(res) # 小花在马路边捡到了3,999,999,999元交给了本博主

# capitalize 字符串首字母转大写 其余 转小写
strvar = 'this is zhang yutong blog'
res = strvar.capitalize()
print(res) # This is zhang yutong blog

# title 每个单词首字符大写
strvar = 'THIS IS ZHANG YUTONG BLOG'
res = strvar.title()
print(res) # This Is Zhang Yutong Blog

# lower 将所有字母转小写
res = strvar.lower()
print(res) # this is zhang yutong blog

# upper 将所有字母转大写
strvar = 'this is zhang yutong blog'
res = strvar.upper()
print(res) # THIS IS ZHANG YUTONG BLOG

# swapcase 大小写互相转化
print(strvar.swapcase()) # THIS IS ZHANG YUTONG BLOG
print(strvar.swapcase().swapcase()) # this is zhang yutong blog

# 计算字符的长度
print(len(strvar)) # 25

# count 统计字符串里面指定字符出现的数量(区分大小写)
print(strvar.count('t')) # 2

# find 查找指定字符串第一次出现的索引(区分大小写)
'''
    find( findStr, start, end)
'''
print(strvar.find('i')) # 2

# index 和 find 类似 
'''
    find: 找不到返回-1
    index: 找不到报错
'''

# startwith 判断以指定字符开头的(区分大小写)
'''
    startswith(findStr, start, end)
'''
res = strvar.startswith('t')
print(res) # True

# endswith 判断是否以指定字符结尾
res = strvar.endswith('og')
print(res) # True

# isupper 判断是否全是大写
strvar = 'ABCDEFG'
print(strvar.isupper()) # True
strvar = 'ABCDEFg'
print(strvar.isupper()) # False

# islower 判断是否全是小写
strvar = 'abcdefg'
print(strvar.islower()) # True
strvar = 'abcdefG'
print(strvar.islower()) # False

# istitle 判断是否每个字符首字母都是大写
strvar = 'Abcdefg'
print(strvar.istitle()) # True
strvar = 'abcDefg'
print(strvar.istitle()) # False

# isalnum 判断字符是否由字母、数字、汉字组成
strvar = '汉字

print(strvar.isalnum()) # False
strvar = 'hanzi'
print(strvar.isalnum()) # True

# isalpha 判断字符是否由字母和文字组成
strvar = '张宇童blog'
print(strvar.isalpha()) # True
strvar = '张宇童blog666'
print(strvar.isalpha()) # False

# isdigit 检测字符串是否由数字组成 接受二进制字节流
'''
二进制字节流是用于终端间的数据传输
把字符转化成二进制之后传输
b"12345678" // 表示一个字节流
b开头后面加上一个字符串就是二进制字节流的表达形式
'''

# isnumeric 判断是否是数字 包含 中文 '一二三四五'
strvar = '万亿千贰壹百万342陆'
print(strvar.isnumeric()) # True

# isdecimal 检测一个字符串是否是纯数字
strvar = '123'
print(strvar.isdecimal()) # True

# isspace 判断字符串是否由空白符组成 \n \r \t
strvar = '\n\t\r'
print(strvar.isspace()) # True