python序列:字符串

1.字符串是一种直接量或者说是一种标量,字符串是不可变类型,简单来说改变一个字符串的元素就等需要新建一个新的字符串。当然,通过拼凑各个部分得到一个新的字符串也还是可以的

注意:python的字符串并不是以\0作为结束符的

>>> astring="Hello world"
>>> astring=astring[:6]+'python'
>>> astring
'Hello python'

2.Pyhton实际上有三类字符串,通常意义下的为字符串str和unicode字符串实际上是抽象类basestring的子类,这个basestring是不能是不能实例化的,如果妄图实例化,那么

>>> basestring('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: The basestring type cannot be instantiated

3.如果你想要删除字符串的一个元素,由于字符串是不可变的,所以你不能仅仅只是删除字符串中的某个元素,不过可以通过拼凑的方法来间接到达要求

>>> astring='Hello world'
>>> astring=astring[:3]+astring[4:]
>>> astring
'Helo world'

当然我么也可以通过赋一个空字符串或者使用del语句来清空或者删除一个字符串
4.字符串做对比的时候是按照ASCII码的值的大小来比较的
5.成员操作符(in ,not in)用来判断一个字符或者一个子串是否会出现在另一个字符串中

>>> astring="Hello world"
>>> "h" in astring
False
>>> "H" in astring
True

6.for 循环的else语句是一个可选项,它只在for循环完整的结束,没有遇到break时执行

这是没有遇到break,执行了后面的else语句
>>> for i in astring:
...     print i,
... else:
...     print "\nBingo"
...
H e l o   w o r l d 
Bingo

7.字符串对象的方法

>>> s.upper()   
'HELLO PYTHON'
>>> s.lower()
'hello python'
>>> s.capitalize()   #首字母大写
'Hello python'
>>> s.title()   #单词首字母大写
'Hello Python'

8.格式化操作符(%)
%d 转换成有符号的十进制
%u 转换成无符号的十进制
%o 转换成无符号的八进制
%e 转换成科学计数法
%f 转换成浮点型
%c 转换成字符

**格式化操作符辅助指令
* 定义宽度或者小数点精度
m.n m显示的最小的总宽度,n是小数点后的位数 %m.nf

>>> f=2.4545
>>> print "%4.2f"%f
2.45

小技巧
对齐的文本和指定的宽度:

>>> '{:<30}'.format('left aligned')   # <向左对其,总宽度为30
'left aligned                  '
>>> '{:>30}'.format('right aligned')  # >向右对其,总宽度为30
'                 right aligned'
>>> '{:^30}'.format('centered')      # ^在总宽度为30的范围内居中,
'           centered           '
>>> '{:*^30}'.format('centered')#^在总宽度为30的范围内居中,空白区域用*填充
'***********centered***********'

使用逗号作为千位分隔符

>>> '{:,}'.format(1234567890)
'1,234,567,890'

9.原始字符串的目的是为了对付哪些在字符串中出现的特殊字符,除了原始字符串符号(引号前面的字母r)以外,原始字符串根普通的字符串有着几乎完全相同的语法

>>> a=r"/asd/asd\n"
>>> print a
/asd/asd\n
>>> b="/asd/asd\n"
>>> print b
/asd/asd

>>>

10.chr(ascii码)与ord(string)函数

>>> ord('A')
65
>>> chr(65)
'A'
>>>

有chr(ascii码)与ord(string)函数,当然也有unichr(ascii码)与uniord(string)函数,用法都一样

11.常用的字符串类型的内建方法
string.endswith(obj,beg=0,end=len(string)) :字符串是否以obj结尾
类似的还有string.startswith(obj,beg=0,end=len(string))

>>> s="hello world"
>>> s.endswith('world')
True
>>> s.isalpha()  #全是字母返回True
False
>>> s="he11o world"
>>> s.isalpha()
False
>>> s="helloworld"
>>> s.isalpha()
True
>>>

>>> s="he11oworld"
>>> s.isalnum()   #字符串内至少有一个数字或字母返回True
True

>>> s="1231231"
>>>> s.isdigit()   #只包含数字返回True 与s.isnumeric()
True

>>> s="Title"
>>> s.istitle()   #是否标题化
True
>>> s=" title"
>>> s.lstrip()  #截掉s的左边空格 当然还有s.rstrip()右边空格
'title' 

>>> seq=['h','e','l']
>>> ''.join(seq)  #将seq中所有元素合并为一个新的字符串
'hel'
>>>'-'.join(seq)
'h-e-l'

>>> s="hello world"
>>> s.count('l')  #返回l出现的次数
3

>>> s="Hello Python"
>>> s.swapcase()   #大小写反转
'hELLO pYTHON'
>>>

>>> s="Hello Python !!!"
>>> s.split(' ')   #以空格作为分隔符切片成数组,很常用
['Hello', 'Python','!!!']
>>>

11.s虽然我们可以用单引号或者双引号来定义字符串,但是如果包含如换行符这样的特殊字符是,这个时候就应该使用三引号,经常用于HTML语句中

12.Unicode通过使用一个或者多个字节来表示一个字符的方法突破了ASCII的限制再这样的机制下,Unicode可以表示超过90000个字符

unicode()函数可以把任何python的数据类型转换成相应的Unicode字符串
s.encode(‘utf-8’)函数 参数接受编码格式,返回编码后的字符
s.decode(‘utf-8’)函数,参数接受解码格式,然后输出

遵循以下规则,处理unicode就比较简单
①。程序中出现字符串一定要加一个前缀u
②。不要用str()函数,用unicode()函数代替
③。不到必须的不要在你的程序中编解码unicode字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值