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

Python学习(五)------- 数据类型(二)

2013-07-09 11:01 309 查看
3. 字符串类型

字符串中比较新鲜的东西的有个三引号字符串:在三引号字符串中可以直接使用换行符,而不用转义字符就可以,比如:

"""How are you?

I'm fine."""

另外还有一个原始字符串,是用来避免过多的使用转义字符而使字符串显示太凌乱的。原始字符串用r字母来引导,后面跟一个引号包括的字符串,字符串中不必使用转义字符,比如:

r"nihao,\haha/ksks"。

如果一个字符串想要跨多行,还可以使用圆括号:

(“fasdlkgjewlkgjkldf "

"dfalsdkghoie4ur")

如果要知道某个字符的Unicode字元,也就是它的编码的整数值,可以用ord()函数。相反的转换可以用chr()函数。

另外,Python字符串可以使用负索引位置,这时计数方式是从最后一个字符开始一直到第一个字符,最后一个字符的索引值为-1。

Python的序列类型有一个分片操作,有三种格式:

seq[start]

seq[start:end]

seq[start:end:step]

第一种格式是按start为索引取一个单一的元素,start是不能省略的。

第二种格式和第三种格式的start和end都是可以省略的,若省略,就认为start为0,end为len(seq)。而第三种格式中的step不能省略也不能为0。而如果给定负的step的话,start的默认值为-1,end就是另外一端的字符的索引。

如果需要连接大量的字符串可以使用用str.join()方法。该方法以一个字符序列做为参数,把字符串序列的所有字符串放到一个单独的字符串中,并以调用该方法的字符串为分隔符放到字符串序列各元素之间。比如:

>>> "-<>-".join(("abc","def","ghi","xyz"))

'abc-<>-def-<>-ghi-<>-xyz'

*符号可以用于字符串的复制,比如:

>>> s = "=" * 5

>>> s

'====='

str.index()和str.find()都可以用来在源字符串中寻找子字符串str,第一个参数是源字符串,可选的第二和第三个参数指定查找的起始和结束位置。

str.lstrip用于剥离字符串左边的空白字符,str.rstrip用于剥离字符串右边的空白字符,str.strip用于剥离两端的空白字符。这三个函数还都可以有一个字符串参数,字符串中的每个字符如果出现在源字符串两端的位置都可以从适当的位置剥离。

str.replace()函数用于子字符串的替换。接受两个参数,第一个参数是原来的子字符串,第二个参数是要替换成的新的字符串。

str.split()函数用于分割字符串,主要接受一个参数,是用来分割的字符,比如用冒号分割的字符串就可以调用str.split(":")。

另外还有str.maketrans()和str.translate()两个方法没太看明白是做什么用的。

字符串的格式化用str.format()方法,该方法会返回一个新字符串,在新字符串中,原字符串中的替换字符被适当的格式化后的参数所代替。第个替换字段都是由包含在花括号中的字段名标识的。如果字段名是简单的整数,就被作为传递给str.format()方法的一个参数的索引位置。比如:

>>> "{0} is not a good {1}".format("He", "boy")

'He is not a good boy'

因为花括号所起的作用,所以如果想要在格式化字符串中包含花括号的话,就要将其复写:"{{"

格式化时还可以使用字符名关键字来明确指定某个格式化参数的值,比如:

>>> "{who} is not a good {0}".format("boy", who = "He")

'He is not a good boy'

这里需要注意的是,关键字参数总是在位置参数之后。而这个字段名还可以引用集合数据类型,比如:

>>> stock = ["paper", "envolopes", "notepads", "pends", "pater clips"]

>>> "We have {0[1]} and {0[2]} in stock".format(stock)

'We have envolopes and notepads in stock'

总之,str.format()方法非常灵活,可以称得上是没有做不到,只有想不到。^O^

另外还有一种很有用的用法,可以参考:

>>> element = "Silver"

>>> number = 47

>>> "Element {number} is {element}".format(**locals())

'Element 47 is Silver'

格式规约

格式规约用于精确控制字符串等的显示格式,比如控制字符串的长度,控制字符串的对齐方式,控制浮点数的小数位数等等。这部分的内容很复杂,至少是很杂,就不往这上面贴了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息