#1.
#A:python中并有没单个字符这种类型,取而代之的是可以使用一个字符的字符串
#B:python中字符串被划分为不可变序列这一类别,意味着其不可在原处被更改
#C:正则表达式re模块 尚未研究
#2.
#A:在python中,空字符不会去结束一个字符串,实际上,python中没有字符会结束一个字符串
#B:python会以十六进制显示非打印字符
#C:在python中,没有一个合法的转义编码出现在\后,则\会被保留,在c++中\将不被保留const char* pStr = "\py"; //pStr = "py"
#D:raw字符串会关闭转义机制,注意点raw字符串不能以奇数个\结尾
strTem = "szn\
slz" #strTem = 'sznslz' '\'的一种转义,表示连续行
strTem = '\0abc\1' #strTem = '\x00abc\x01'
strTem = '\py' #strTem = '\\py'
strTem = r'\n' #strTem = '\\n'
strTem = '\n' #strTem = '\n'
#strTem = r'\n\' #由于\'会导致转义,所以这句代码不能通过编译
#3.
#A:可以使用for语句在一个字符串中进行循环迭代,并使用in表达式操作符对字符和字符串进行成员关系测试
#B:字符串支持复下标,支持切片,切片的时候支持第三个索引,称为步进,若是负数,则方向从右至左
#C:list()可以将任意序列中的元素创立一个新的列表, join()函数可以将列表字符串连接在一起并指定分隔符
#D:split()函数可以分割字符串,默认以空格作为分隔符
#E:endswitch() startswitch()
for v in 'string':
print(v, end = '') #string
value = 'v' in 'string' #value = False
value = 's' in 'string' #value = True
strTem = 'string'[::-1] #strTem = 'gnirts'
listTem = list('string')#listTem = ['s', 't', 'r', 'i', 'n', 'g']
sTem = ''.join(listTem) #sTem = 'string'
sTem = '-'.join(listTem)#sTem = 's-t-r-i-n-g'
value = '1 2 3'.split() #value = ['1', '2', '3']
v = '1,2,3'.split(',') #v = ['1', '2', '3']
v = "szn slz".endswith('lz') #v = True
v = "sn sz".startswith('s') #v = True
#4.
#A:字符串格式化表达式,由于对象的每个类型都可以转为字符串,所以一般都用%s即可
#左对齐(-),正负号(+),补零(0),使用*来让用户指定取值
'''
s #字符串或任何对象
r #字符串,但是是repr
c #字符
d #十进制整数
i #整数
u #无符号整数
o #八进制整数
x X #十六进制整数
e E #浮点指数
f F #浮点十进制
g G #浮点e或者f
'''
strTest = "abc %s, %s, %d%s" % (1, 's', 3, [1]) #strTest = 'abc 1, s, 3[1]'
strTest = "%c,%d,%i,%u,%o,%x,%X,%e,%E,%f,%F,%g,%g" % ('a', 0x10, 0x10, -10, 10, 16, 10, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1)
#strTest = 'a,16,16,-10,12,10,A,1.010000e+01,1.010000E+01,10.100000,10.100000,10.1,10.1'
strTest = '%010.2f' % 10.2 #strTest = '0000010.20'
strTest = '%+010.2f' % 10.2 #strTest = '+000010.20'
strTest = '%-010.2f' % (10.2) #strTest = '10.20 '
strTest = '%0*.*f' % (5, 2, 1.1) #strTest = '01.10'
#5.
#A:基于字典的字符串格式化
strTest = "%(n)d, %(x)s" % {'n':1, "x":"szn"} #strTest = '1, szn'
#6.
#A:具体格式化
value = '{0:>010}'.format('s') #value = '000000000s'
value = '{0:<010}'.format('s') #value = 's000000000'
value = '{0:.2f}'.format(1 / 3) #value = '0.33'
value = '(0:.2f)'.format(1 / 3) #value = '(0:.2f)'
value = '{0:.{1}f}'.format(1 / 3, 3)#value = '0.333'
v0 = '{0:b}'.format((2 ** 16) - 1) #v0 = '1111111111111111'
v1 = '%d' % (2 ** 16 - 1) #v1 = '65535'
#v2 = '%b' % (2 ** 16 - 1) #运行出错