python 字符串(2)

  1. 云栖社区>
  2. 博客>
  3. 正文

python 字符串(2)

hiekay 2018-10-15 18:46:00 浏览435
展开阅读全文

字符串复制
字符串复制的方法:

>>> a = "I like python and can teach you to learn it."
>>> print a
I like python and can teach you to learn it.
>>> b = a
>>> print b
I like python and can teach you to learn it.
>>> print a
I like python and can teach you to learn it.

复制非常简单,类似与赋值一样。可以理解为那个字符串本来跟a连接着,通过b=a,a从自己手里分处一股绳子给了b,这样两者都可以指向那个字符串了。

字符串长度

方法:

>>> a="hello"
>>> len(a)
5

使用的是一个函数len(object)。得到的结果就是该字符串长度。

>>> m = len(a)  #把结果返回后赋值给一个变量
>>> m
5
>>> type(m)     #这个返回值(变量)是一个整数型
<type 'int'>

字符大小写的转换

在python中有下面一堆内建函数,用来实现各种类型的大小写转化

  • S.upper() #S中的字母大写
  • S.lower() #S中的字母小写
  • S.capitalize() #首字母大写
  • S.istitle() #检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
  • S.isupper() #S中的字母是否全是大写
  • S.islower() #S中的字母是否全是小写
    看例子:
>>> a = "hiekay,python"
>>> a.upper()       #将小写字母完全变成大写字母
'HIEKAY,PYTHON'
>>> a               #原数据对象并没有改变
'hiekay,python'
>>> b = a.upper()
>>> b
'HIEKAY,PYTHON'
>>> c = b.lower()   #将所有的小写字母变成大写字母
>>> c
'hiekay,python'

>>> a
'hiekay,python'
>>> a.capitalize()  #把字符串的第一个字母变成大写
'Hiekay,python'
>>> a               #原数据对象没有改变
'hiekay,python'
>>> b = a.capitalize() #新建立了一个
>>> b
'Hiekay,python'

>>> a = "hiekay,github"    #这里的问题就是网友白羽毛指出的,非常感谢他。
>>> a.istitle()
False
>>> a = "HIEAKY"        #当全是大写的时候,返回False
>>> a.istitle()
False
>>> a = "hiekaY"
>>> a.istitle()
False
>>> a = "Hiekay,github"  #如果这样,也返回False
>>> a.istitle()
False
>>> a = "Hiekay"        #这样是True
>>> a.istitle()
True
>>> a = 'Hiekay,Github' #这样也是True
>>> a.istitle()
True

>>> a = "Hiekay"
>>> a.isupper()
False
>>> a.upper().isupper()
True
>>> a.islower()
False
>>> a.lower().islower()
True
>>> a = "This is a Book"
>>> a.istitle()
False
>>> b = a.title()     #这样就把所有单词的第一个字母转化为大写
>>> b
'This Is A Book'
>>> a.istitle()       #判断每个单词的第一个字母是否为大写
False 
>>> b.istitle()
True

操作字符串中的字符

在python中按照这样的顺序对字符串进行编号:从左边第一个开始是0号,向下依次按照整数增加,为1、2...,直到最后一个,在这个过程中,所有字符,包括空格,都进行变好。例如:
Hello,wor ld
对于这个字符串,从左向右的变好依次是:
|0|1|2|3|4|5|6|7|8|9|10|11|
|H|e|l|l|o|,|w|o|r| |l |d |
看代码:

>>> a = "Hello,wor ld"
>>> len(a)      #字符串的长度是12,说明公有12个字符,最后一个字符编号是11
12
>>> a[0]
'H'
>>> a[3]
'l'
>>> a[9]
' '
>>> a[11]
'd'
>>> a[5]
','

特别说明,编号是从左边开始,第一个是0。
能不能从右边开始编号呢?可以。这么人见人爱的python难道这点小要求都不满足吗?

>>> a[-1]
'd'
>>> a[11]
'd'
>>> a[-12]
'H'
>>> a[-3]
' '

看到了吗?如果从右边开始,第一个编号是-1,这样就跟从左边区分开了。也就是a[-1]和a[11]是指向同一个字符。

字符串截取

比如,从“hello,wor ld”里面取出“llo”。可以这样操作

>>> a[2:5]
'llo'
  • 注意: 截取a[n,m],其中n<m,得到的字符是从a[n]开始到a[m-1]
    注意:所截取部分的第一个字符(l)对应的编号是(2),从这里开始;结束的字符是(o),对应编号是(4),但是结束的编号要增加1,不能是4,而是5.这样截取到的就是上面所要求的了。
特殊的
>>> a[:]    #表示截取全部
'Hello,wor ld'
>>> a[3:]   #表示从a[3]开始,一直到字符串的最后
'lo,wor ld'
>>> a[:4]   #表示从字符串开头一直到a[4]前结束
'Hell'

去掉字符串两头的空格

  • S.strip() 去掉字符串的左右空格
  • S.lstrip() 去掉字符串的左边空格
  • S.rstrip() 去掉字符串的右边空格
    例子:
>>> b=" hello "
>>> b
' hello '
>>> b.strip()
'hello'
>>> b
' hello '
>>> b.lstrip()
'hello '
>>> b.rstrip()
' hello'

扩展raw_input()

下面共同做一个练习:输入用户名,计算机自动向这个用户打招呼。代码如下:

#coding:utf-8

print "please write your name:"
name=raw_input()
print "Hello,%s"%name

raw_input()的含义,就是要用户输入内容,所输入的内容是一个字符串。

网友评论

登录后评论
0/500
评论
hiekay
+ 关注