(一)字符串

七个函数

string.join(seq):以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

str = '*'
seq = 'abcasdasd'
print(str.join(seq))

结果:a*b*c*a*s*d*a*s*d

 

string.split(str="", num=string.count(str)):以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串

str = 'b'
a = 'abcasbasd'
print(a.split(str))

结果:['a', 'cas', 'asd'] ----- 返回的数组中不包含分隔符,区别于partition()

 

string.find(str, beg=0, end=len(string)):检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

 

str = 'b'
a = 'abcasbasd'
print(a.find(str))

结果:1

 

 

string.strip([obj]):删除 string 字符串前面和末尾的空格;当obj不为空,可以移除指定字符串,包括\t \n等

 

a = '    abca sbasd   '
print(a.strip())

结果:abca sbasd

 

 

string.replace(str1, str2,  num=string.count(str1)):把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次

a = 'abcasbcasd'
print(a.replace('ca','xxx'))

结果:abxxxsbxxxsd

 

string.upper()与string.lower()转换 string 中的小写字母为大写/大写字母为小写

 


 

五个要点

for循环:

for 变量名 in 字符串

a = 'asdas'
for n in a:
    print(n)

等价于while循环:

a = 'asdas'
n = 0
while n < len(a):
    print(a[n])
    n += 1

 

索引,下标:

获取字符串中的某一个字符

a = 'asdas'
print(a[3])

结果:a

 

切片:

语法表达式为[start_index : end_index : step],其中:

  •   start_index表示起始索引
  •   end_index表示结束索引
  •   step表示步长,步长不能为0,且默认值为1

支持切片操作的数据类型有listtuplestring等

a = 'asdasasda'
print(a[1:8:3])

结果:ssd

 

len()

获取当前字符串中由几个字符组成

a = 'asdasasda'
print(len(a))

结果:9

 

range()

帮助创建连续的数字,通过设置步长来指定不连续

for a in range(0,100,5):
    print(a)

结果:0,5,10....95

 


 

 

字符串格式化(两种方式)

① 百分号拼接

print('i am %s , my age is %d'%('xulan',20))
print('i am %s , my age is %.2f'%('xulan',20))
print('i am %s , my age is %.2f%%'%('xulan',20))
print('i am %(name)s , my age is %(age)d '%{'name': 'xulan','age':20})

结果:i am xulan , my age is 20
   i am xulan , my age is 20.00
   i am xulan , my age is 20.00%
   i am xulan , my age is 20

 

 ②format字符串格式化

print(('my name is {} , my age is {}').format('xulan',20))
结果:my name is xulan , my age is 20      按顺序取值
print(('my name is {1} , my age is {0}').format('xulan',20))
结果:my name is 20 , my age is xulan      按下标取值
print(('my name is {1} , my age is {0}').format(*['xulan',20]))
结果:my name is 20 , my age is xulan      *表示参数是列表或元组,*['xulan',20]将被转变为 'xulan',20
print(('my name is {a} , my age is {b}').format(a='xulan',b=20))
结果:my name is xulan , my age is 20      按key取value的值
print(('my name is {a} , my age is {b}').format(**{'a':'xulan','b':20}))
结果:my name is xulan , my age is 20      **表示参数是字典,**{'a':'xulan','b':20}将被转变为 a='xulan',b=20
print(('my name is {0[1]} , my age is {0[0]}').format([1,2],[11,22]))
结果:my name is 2 , my age is 1           按下标找到对应的列表,再按列表的下标取值
print("i am {:s}, age {:d}".format("xulan",20))
结果:i am xulan, age 20                   :b二进制 :o八进制 :d十进制 :x16进制(小写) :X16进制(大写) :%显示百分比(默认显示小数点后六位)
print("numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623))
结果:numbers: 1111,17,15,f,F, 1587.623000%

 

切记:

字符串一旦创建,不可修改, 一旦修改或者拼接,都只会重新生成字符串
即对字符串的任何操作不会改变原对象,而是重新生成了一个新的对象

posted @ 2018-05-23 20:26  酒红色  阅读(272)  评论(0编辑  收藏  举报