代码改变世界

第七章 字符串

2017-03-12 19:35  szn好色仙人  阅读(166)  评论(0)    收藏  举报
#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)          #运行出错