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

python的学习(五)----字符串操作

2012-10-14 22:18 309 查看
python字符串操作

1. 字符串的表示, str 与repr

python打印的字符串会保持该值在python代码中的状态,使用print语句则显示期望状态,如:

>>> "Hello, world!"

'Hello, world!'    # 仍带有单引号,表示为字符串

>>> 10000L

10000L    #仍保留整数类型

>>>print "Hello, world!"

Hello, world!

>>> print 10000L

10000

实际上python中有三种将Python值转换为字符串的机制,一是通过str函数,其将值转换为合理形式的字符串,

另一个则是创建一个字符串,以合法的python表达式的形式来表示,第三种则是反引号,如:

>>> print repr("Hello, world!")

'Hello, world!'

>>> print repr(10000L)

10000L

>>> print str("Hello, world!")

Hello, world!

>>> print str(10000L)

10000

另外,反引号的实现也可以将值转换为字符串,如:

>>> value = 10

>>> print  "The value is  "+ value

Track....TypeError

>>> print "The value is " + `value` #为反引号,不是单引号

The value is 10

三种方式中,函数str更易于阅读,repr与反引号则注重把结果字符串转换为合法的Python表达式

2. input 和 raw_input的比较

假如在脚本文件中输入下列语句:

name = input("what is your name?")

print "Hello, " + name + "!"

程序是合法的,关键看input的用户输入,如下运行时

What is your name? Gumby

Traceback ....NameError

但是输入带引号的 "Gumby” 时,运行成功

关键问题在于 input会假设用户输入的是合法的Python表达式,当处理字符串时,需用户输入引号,

而raw_input函数将所有的输入当做原始数据,然后将其放入字符串中

>>> input (“Enter a number: ”)

Enter a number: 3

3

>>> raw_input("Enter a number: ")

Enter a number: 3

'3'

3. 字符串的操作方法

(1)find

语法:在一个较长的字符串中查找子字符串,返回子字符串所在位置的最左端索引,如果没找到返回-1

>>> 'My name is Linda'.find(My)

0

注意:字符串的find并不返回布尔值,当返回0时,说明在索引0位置处找到子字符串

(2) join

语法:在字符串构成的队列中添加元素

>>> seq = ['1', '2', '3']

>>> sep = '+'

>>> sep.join(seq)

'1+2+3'

(3) lower

返回字符串的小写字母版

>>>'My name is Linda'.lower()

'my name is linda'

(4) replace

返回某字符串的所有匹配项均被替换之后得到的字符串

>>> 'My name is Linda'.replace('name', 'blog')

'My blog is Linda'

(5) split

作用刚好与join相反,用于将字符串分割成序列

>>> '1+2+3'.split('+')

['1','2','3']

注意:如果不提供任何分隔符,程序会将所有空格,制表,换行等作为分隔符

(6) strip

返回去除两侧(不包括内部)空格 或指定的字符 后的字符串

(7) translate

用于替换字符串中的某些部分,但与replace不同的是,translate中一个替换只处理单个字符,但其可以同时进行多个替换

translate函数有两个参数,第一个为转换表,体现256个字符串与待替换字符的对应关系,可使用maketrans函数

第二个是可选的,用来指定需要删除的字符,例如:

>>> table = maketrans('ns', 'kz')

>>> 'this is linda blog'.translate(table, ' ')

'thizizlikdablog'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息