您的位置:首页 > 编程语言 > Python开发

广东海洋大学 电子1151 孔yanfei python语言程序设计 第五周

2016-06-20 15:08 567 查看
python号称是为每一个问题提供一个最好的解决方案,所以我们可以看到python为字符串操作提供了大量的函数,以最好的解决各种问题。但如此多的函数多少会让人有些晕,所以这里总结一些常用的用法。

I,字符串定义

stra=’abcd’

strb=”abcd”

strc=“‘abcd

efgh’”

strd=str(“abcd”) str()即为字符串类的构造函数

II,字符串的赋值与拷贝

stre=stra

strf=copy.copy(stra)

strg=copy.deepcopy(stra)

strh=stra[:]

上面是几种不同的赋值操作,从效果上来说是一样的。

这里主要是想说一说对象的赋值与拷贝。因为字符串对象是常量,所以上面的几种赋值方法得到stre, strf, strg, strh都指向同一个对象。但如果将上面的字符串换成变量,则:

stre和stra指向同一个对象,strf, strg, strh指向不同的对象。

因为stre=stra仅仅是创建了一个对stra对象的引用,而对象的拷贝则是创建了一个新的对象,拷贝又分为浅拷贝和深拷贝,浅拷贝只创建新的容器,而深拷贝则创建新的容器和容器里的内容。

关于python的对象,还有更有意思的东西。

a=1

a=2

实际上这两个a指向的是不同的对象。

因为在python中,为了追求更高的效率,对对象的修改实际上生成一个新的对象,就的对象在没有引用后,会被自动回收。

注:

id(object)用来查看对象的id,由此判断是否是同一个对象

object.str用来查看对象的内存地址

III, 字符串的常用操作

1, strlen

len(str)

len()函数实际上是用来计算序列中的元素的个数,同样适用于字符串

2, strcpy

copy.copy()

b=a

3, strcat

str1 = ‘abcd’

str2 = ‘efgh’

str1 += str2

4, strchr(str1, str2)

str1.find(str2)

str1.index(str2) 当找不到str2的时候,会raise error

5, strcmp(str1, str2)

cmp(str1, str2)

同样cmp()函数也是针对通用对象的函数。

6, strlwr(str1) strupr(str1) 转换大小写

str1=str1.lower()

str1=str1.upper()

7, 反转字符串

str1=str1[::-1]

或者

strtmp=list(str1)

strtmp.reverse()

str1=”.join(strtmp)

IV, cookbook中的例子:

1, 顺序处理字符串中的每一个字符

str1=’abcd’

thelist=list(str1)

或者

for c in str1:

do_some_thing

或者

resule=[do_some_thing for c in str1]

2, 字符和数字之间的转换

print ord(‘a’)

print chr(97)

3, 测试object是否是字符串

isinstance(str1, basestring)

basestring是builtin中定义的字符串的基类,str和unicode都是由他继承来的。所以这种方法有较好的通用性。

另外一种常用但不推荐的方法:

type(str) is type(”)

4, 对齐字符串

str1.ljust(20) 向左对齐,不足20的位置用空格填充

str1.ljust(20, ‘+’) 向左对齐,不足20的位置用’+’填充

str1.rjust(20)

str1.center(20)

5, 去除字符串两侧的空格

str1.lstrip()

str1.rstrip()

str1.strip()

6, 链接字符串

str1=str1+str2

假设pieces是一个list,list中包含了多个字符串:

str1=”.join(pieces)

格式化字符串

str1=’%s%s something %s yet more’ % (str2, str3, str4)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: