#python3 中无需写 #conding = utf-8
# Str.strip([chars]) 内置函数. 去除Str中的指定chars,左右都去除. chars可以是字符或者字符串.
#默认去除头尾的空白符.包含: 空格 换行 tab\t 回车\r
#去除时, chars中的字符不论顺序.包含即去除,遇到不包含者,去除停止
a = "plplpthonlp"
print(a.strip("lp"))
#Str.lstrip([chars]) 和Str.rstrip([chars]) .分别为left right . 去除左边/去除右边 的相应chars.
print("plplpthonlp".lstrip("lp"))
c = "plplpythonlp".lstrip("lp")
print(c)
#Str.startswith('chars',start,end)
# 1.含义:判断Str是否以chars开头. start:为开始判断的位置. 下标 end:结束判断的位置下标.返回值为 True 和False
# 2.start 和end不传时,默认从开头[0] 判断到len(Str)长度.
# 3. 该函数必须传参. 即chars比传
# 4.当检验空字符时.返回 True
print("wangqing".startswith(""))
# 5.一般python中的取值范围 start和end,大多数 含头不含尾.
#本处传参start 下标2. end默认到长度.
#解析: 从下标2开始(n),判断到长度.
print("wangqing".startswith("n", 2))
chuan = "wangqing I'm comingP!!"
chi = "!!"
print(chuan)
Str2 = 'Runoob example....wow!!!'
suffix='!!'
#字符串的操作:判断是否由 某字符串 结尾.
print(Str2)
#本处判断是否由 suffix 结尾. suffix是一个变量,已经将!!赋值给suffix. 因此判断的是 Str2 是否由 !!结尾.
print (Str2.endswith(suffix))
#判断 从第一个位置开始,不含第一位,到第五位. 是否以b结尾.
#第一位是R 第五位是o
print(Str2.endswith("b", 1, 5))
print('Runoob example....wow!!!'[5])
print('01234'.endswith('234', 0, 4))
#Str.find('chars',start,end))
#1.含义:下标start到下标end内(含头不含尾)中寻找是否有 chars.
#注意:chars 可以为字符,可以为字符串. 如果为字符,返回下标. 如果为字符串,返回字符串的起始下标.
#3.含头不含尾: 从下标1开头,查看到下标7. 不含g. 返回-1
print("pythonongking".find("g",1,8))
#4.如果不传start和end,默认从0开始,到长度.
print(Str2.find("o"))
print(Str2.find("k"))
# print(Str2.index("k"))
print("pythononontho".find("n",1,6))
print("pythononogtho".endswith("n",1,6))
#Str.replace(old,new.max)
#1.将旧字符串替换为新字符串. max为最大替换次数.
#2.如果max未传,默认全部替换
Str3 = "this is string example....wow!!! this is string example....wow!!!"
print(Str3.replace("is","was")) #本处全部替换
#3.如果Str中 old出现次数大于 max,则最多替换max次,剩余的old不替换.
print(Str3.replace("is","was",3)) #本处替换3个is, 剩余的不替换
print('aaabaa'.replace('a','c',4))
#查询字符串的长度. 长度不是下标.
print(len(Str3))
#查询字符或者字符串出现的次数.
#注意: 如果查找 is,那么 this 中is也算;如果查找' is' 空格is,则this中is不算
print("this is my".count("s")) #结果是2
print("this is my".count(" is")) #结果是1
print(Str3.count('is',2,30))
#Str.lower() 将字符串中所有字符转化位小写
#注意: 本处无参数. 是全部字符转化为小写
print(Str2.lower())
#Str.upper() 将字符串中所有字符转化为 大写.
# 注意:本处无参数. 是全部字符转化为 大写.
print(Str2.upper())
#如果字符串中 没有区分大小写的字符,则原样输出.
print("784560".lower()) #原样输出数字
#Str.isupper()
#无参数.返回值是True 和False
#检查字符串中是否 全是大写. 是:True. 否:False
print(Str2.isupper())
Str4 = "123hello python .boring PYTHON"
#注意:如果不包含 区分大小写的字符,则全部返回False
print("7554&9((*^".isupper()) #本处没有字母.返回False
print("78456H".isupper()) #本处有一个字母,且是大写. 返回True
#Str.islower() 检查是否全部为小写.同理
# Str.capitalize()
#将字符串中第一个字符转化为大写,其余全转化为小写
#如果第一个字符不是字母,则不转化,但是其余的转化为小写
#无参数. 返回值还是一个字符串
print(Str4.capitalize())
Str5 = "hello python .boring PYTHON"
print(Str5.capitalize())