# 字符串的相关操作
# 字符串的拼接
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