# Pyhthon版本3.7
# _*_ coding:UTF-8 _*_
# 访问字符串中的值
# Python 不支持单字符类型,单字符在Python中也是作为一个字符串使用
var1 = 'Hello World!';
var2 = 'Python Runoob';
print("var1[0]:",var1[0])
print("var2[1:5]:",var2[1:5])
# Python字符串更新
# 对已存在的字符串修改,并赋值给另一个变量
var1 = 'Hello World!';
var2 = var1[:6] + 'Runoob';
print(var2)
# Python 转移字符
# \a-响铃
# \b-退格
# \000-空
# \v-纵向制表符
# \t-横向制表符
# \r-回车
# \f-换页
# Python字符串运算符
a = 'Hello';
b = 'Python';
print("a + b 输出结果:",a + b)
print("a * 2 输出结果:",a * 2)
print("a[1] 输出结果:",a[1])
print("a[1:4] 输出结果:",a[1:4])
if( "H" in a):
print("H 在变量 a 中")
else:
print("H 不在变量 a 中")
if('M' not in a):
print("M 不在变量 a 中")
else:
print("M 在变量 a 中")
# Python字符串格式化
print("My name is %s and weight is %d kg!"%('Zara',21))
# Python 三引号(在两个三引号中间可以包含任意字符,包括换行等)
hi = '''hi
there'''
print(hi)
# Unicode字符串
u = u'Hello\u0020World !' # \u0020是空格符Unicode编码
print(u)
## 字符串内建函数
import string # 引入后可用
str ="aaa"
tmp = str.capitalize(); # 字符串首字母大写
print(tmp)
tmp = str.center(10) # 返回一个原字符串居中,并用空格填充至width的新字符串
print(tmp)
# 返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数
tmp = str.count('a',1,2)
print(tmp)
# 以指定的编码编码string
beforeEncoding = '陈飞'
tmp = beforeEncoding.encode("UTF-8")
print(tmp)
# 以指定的编码解码string
tmp = tmp.decode("UTF-8")
print(tmp)
# 字符串是否以obj结束
tmp = str.endswith('a',1,2)
print(tmp)
# 格式化字符串
tmp = "{} {}".format("hello", "world") # 不设置指定顺序,按默认顺序
print(tmp)
tmp = "{0} {1}".format("hello", "world") # 设置指定顺序
print(tmp)
tmp = "{1} {0} {1}".format("hello", "world") # 设置指定位置
print(tmp)
# 设置参数
print("{a},{b}".format(a="hello", b="world"))
# 通过字典设置参数
site = {"name":"陈飞", "sex":"男"}
print("{name},{sex}".format(**site))
# 通过列表索引设置参数
my_list = ['陈飞','男']
print("{0[0]},{0[1]}".format(my_list))
# 如果 string 至少有一个字符并且所有字符都是字母或数字则返
# 回 True,否则返回 False
str1 = "a1";
str2 = "aa$";
print(str1.isalnum())
print(str2.isalnum())
# 如果 string 至少有一个字符并且所有字符都是字母则返回 True,
# 否则返回 False
str1 = "aa"
str2 = "a1"
print(str1.isalpha())
print(str2.isalpha())
# 如果 string 只包含数字则返回 True 否则返回 False.
str1 = "11"
str2 = "a1"
print(str1.isdigit())
print(str2.isdigit())
# 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,
# 否则返回 False
str1 = "A1"
print(str1.islower())
# 如果 string 中只包含数字字符,则返回 True,否则返回 False
str1 = "11"
print(str1.isdigit())
# 如果 string 中只包含空格,则返回 True,否则返回 False.
str1 = " "
print(str1.isspace())
# 如果 string 是标题化的(见 title())则返回 True,否则返回 False
# 如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
str = "This Is String Example...Wow!!!";
print(str.istitle());
str = "This is string example....wow!!!";
print(str.istitle());
# 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,
# 否则返回 False
str = "A1"
print(str.isupper())
# 截掉左边的空格
str = " 1"
print(str.lstrip())
# 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),
# 如果 string 中不包含str 则 string_pre_str == string.
str = "1aa2";
print(str.partition("aa"))
# 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
str = "aaa"
print(str.replace('a','b',2))
# 类似于 find()函数,不过是从右边开始查找
str = "abc"
print(str.rfind('b'))
# 去掉左右空格
str = " a "
print(str.strip())