python知识点结构(五)(5.1标准类型)5.1.1三大常用类型之字符串

py2.7已将类和类型统一。

***

理解:定义的一切对象都有归属的python类,可以调用python提供的类方法。

***

py中的数据类型基本可以分为数字,str,bool,list,tuple,dict,set。

主要i介绍str,list,dict

1、str类

      特性:不可被修改。

             所有对字符串的操作后都是新产生一个字符串实例。

      ***

  理解:py源码为C代码,C语言中没有字符串的概念,是字符的数组组合为字符创,定义数组首先就要定义数组的元素个数,所以暂理解为数组是静态分配内存。

              abc变为acc,重新为acc分配内存,将首个字节内存地址赋给变量。这里的字符串名相当于C语言中数组名。

  ***

  常用功能:

  助记:索长移(除空格)分切,索长抽空分片。

  索引,长度,切片。如下例。

#-*- coding:utf-8 -*-
a = 'stringisright'
#索引
print a[1]
#长度
print len(a)
#切片 注切出来的范围相当于0<= an < len(a)
print a[0:len(a)]
#切片 切出来最后一个字符
print a[-1:]
#切片 间隔切片
print a[0::3]
print a[0::]

>>> 
t
13
stringisright
t
siiit
stringisright
>>> 

  移除空格,如下例子。

#-*- coding:utf-8 -*-
a = '              stringisright '
#1 移除两端空白
b = a.strip()
print '1',b
#2 移除两端指定字符 注只移除两端
b = 'ooostringisooorightoo'
c = b.strip('o')
print '2',c
#3 移除右端指定字符
c = b.rstrip('o')
print '3',c
#4 移除左端指定字符
c = b.lstrip('o')
print '4',c

>>> 
1 stringisright
2 stringisoooright
3 ooostringisoooright
4 stringisooorightoo
>>> 

  分割和列表重组,如下例。

#-*- coding:utf-8 -*-
a = 'string\nisright'
#1 根据换行符分割
b = a.splitlines()
print '1',b
#2 根据给定内容分割,从左至右可以指定最大分割次数
b = 'ooostringisooorightoo ks fr sdg sd'
c = b.split('o',2)
print '2',c
#3 按照空格分割,返回以空格间隔的字符串为元素的列表
test = b.split(' ')
print "3",test
#4 被剔除的元素以空字符的形式存在列表中,分割后再重新组合为字符串
#把列表中所有元素都连起来包括空字符,join前面的对象是指列表中元素用神恶魔内容连接。

b = 'ooostringisooorightoo'
listb = b.split('o')
pr = ''.join(listb)
print '4',pr
#5 从左端指定字符分割
b = 'ooostringisooorightoo'
c = b.split('o',1)
print '5',c
#6 从左端指定字符分割
b = 'ooostringisooorightoo'
c = b.split('o',1)
print '6',c

>>> 
1 ['string', 'isright']
2 ['', '', 'ostringisooorightoo ks fr sdg sd']
3 ['ooostringisooorightoo', 'ks', 'fr', 'sdg', 'sd']
4 stringisright
5 ['', 'oostringisooorightoo']
6 ['', 'oostringisooorightoo']
>>> 

  再介绍几个常用类方法。变大写,变小写。

#-*- coding:utf-8 -*-
a = 'stringiSright'
#1 不管字符串初始什么形式转化为,只有首字母大写 注意给定初始a字符串中间有一个大写的S,在使用capitalize后,只有首字母大写了。
print a
b = a.capitalize()
print '1',b
#2 所有变大写
b = a.upper()
print '2',b
#3 所有字母变小写
b = a.lower()
print '3',b
#4 是否为数字
b = a.isdigit()
print '4',b
#5 是否为字母
b = a.isalpha()
print '5',b
#6 是否为子母和数字 b = a.isalnum() print '6',b 
>>> stringiSright
1 Stringisright
2 STRINGISRIGHT
3 stringisright
4 False
5 True
6 True >>>

  容积类型最重要的增删改查数,查寻功能也会融合后面的正则表达式一起作总结。再介绍统计数量的功能,如下例。

#-*- coding:utf-8 -*-
a = 'stringhiSright'
#1 统计字符串gh的个数
print a
b = a.count('gh')
print '1',b


>>> 
stringhiSright
1 2
>>> 

  查找和替换,如下例。

#! /usr/bin/env python
#-*- coding:utf-8 -*-
#1 replace替换指定字符串,可以指定替换个数。
a = 'AAadGqAaw'
char = a.replace('A','_',2)
print '1',a,char
#2 find查找一个元素,若有多个符合查找条件的元素,返回最前一个查找到的元素的序列号,未找到则返回-1。
a = 'AAadGqAaw'
b = a.find('A',0,3)
print '2',b
b = a.find('u',0,3)
print '2',b

>>> 
1 AAadGqAaw __adGqAaw
2 0
2 -1
>>> 

  判断是否以某字符串开头或结尾,附加大小写转化,如下例。

#! /usr/bin/env python
#-*- coding:utf-8 -*-
a = 'AAadGqAaw'
#1 endswith是否以某个字符串结尾。
char = a.endswith('A')
print '1',a,char
char = a.endswith('w')
print '1',a,char
#2 startswith是否以某个字符串结尾。
b = a.startswith('r')
print '2',b
b = a.startswith('A')
print '2',b
#3 swapcase大小写转化。
b = a.swapcase()
print '3',a,b


>>> 
1 AAadGqAaw False
1 AAadGqAaw True
2 False
2 True
3 AAadGqAaw aaADgQaAW
>>> 

  

 

posted on 2016-05-14 18:34  lexn  阅读(104)  评论(0)    收藏  举报

导航