第四篇:strings

1.一点,两点都一样

前面已经说了。string可以用““ 也可以使用‘ ’。那它为什么要用两种方式表示呢。其实这样会有不少方便之处:

>>> 'I'm'
SyntaxError: invalid syntax
>>> 'I"m'
'I"m'
>>> "I"m"
SyntaxError: invalid syntax
>>> "I'm"
"I'm"

除非你坚持还用下面的方式:

>>> 'I\'m'
"I'm"

 

2.转义字符

和c/c++差不多

>>> s = 'a\nb\tc'
>>> s
'a\nb\tc'
>>> print(s)
a
b	c
>>>len(s)
5

转移字符参考:

 

注意,如果转义字符没有意义,python会多加一个\:

>>> x = "C:\py\code"           # Keeps \ literally
>>> x
'C:\\py\\code'
>>> len(x)
10
>>> path = r'C:\new\text.dat'
>>> path                          # Show as Python code
'C:\\new\\text.dat'
>>> print(path)                   # User-friendly format
C:\new\text.dat
>>> len(path)                     # String length
15


3.三个点:块string:

用三个点的标识就可以记录多行string了。下面的例子'''.....''' 也可以改成""".....""" (一点两点都一样嘛)

>>> h = '''
Hello,
World
'''
>>> h
'\nHello,\nWorld\n'
>>> print(h)

Hello,
World

那么块string有什么作用呢?

1.表示多行string。

2.多汗注释。:)

我在eclipe里创建一个python文件,文件创建说明就是这么注释的:

'''
Created on 2013-4-27

@author: xxxxxx
'''

 

4.基本的string操作

*真的很好用呀:

>>> print('------------------------------30----------')
------------------------------30----------
>>> print('-'*30+'30'+'-'*10)
------------------------------30----------

你看看,第一种方法要打出30个’-‘, 然后打出30, 再打出10个‘-’。好烦呀。

下面显然会简洁一点:

来30个‘-’,再贴上字符串‘30’, 最后再贴上10个‘-’


注意:string 和 number 不存在+ - / 的关系:

‘hello' + 9: wrong, 不会自动转换9

 

延用上面的例子。我要看看30是不是在string里,结果显示的确在的。

>>>"30" in ouput
True

这里又用到了in.注意in的多种用途。

 

5.下标

这个看起来太简单了。直接上例子足以。

下标操作:

>>> h = 'asdn bsdn csdn ... zsdn'
>>> h[0]
'a'
>>> h[0:2] #冒号表示0到2,[...)。包括0, 不包括2
'as'
>>> h[1:3]
'sd'
>>> h[:-1]
'asdn bsdn csdn ... zsd'
>>> h[2:]
'dn bsdn csdn ... zsdn'

说明:

与MATLAB下标操作类似。这里用:表示’直到‘的意思。

1:3   这是指:1到3

1:     这是指: 1到最后

:5     这是指: 最前面到5

并且这里指的是闭开区间。与c++的STL里面[begin...end)类似。

如果要增大步长间隔,可以这么用:

>>> h[1:10:2] #[1, 10) 步长为2
'snbd '
>>> h[::2] #头到尾,步长为2
'ad sncd . sn'

注意这边与MATLAB不太一样,MATLAB中,步长是写在中间的,如[1:2:10]

 

当然下标不仅仅是变量的权利:

>>> 'spam'[1:3] #没有变量指向的object也可以使用下标等其它操作符。以后不再说明。
'pa'

 

当然,既然负数也可以表示下标,我们也就可以倒着玩了:

>>> 'hello'[::-1]
'olleh'
>>> 'hello'[3:1:-1]
'll'
>>> 'helio'[3:1:-1]
'il'

这种方法,也可以用slice函数来表示(与前面实例类似)

>>> 'hello'[slice(None, None, -1)]
'olleh'
>>> 'hello'[slice(3, 1, -1)]
'll'
>>> 'helio'[slice(3,1,-1)]
'il'

 

6.string转换

转到string:

>>> '42'+1

Traceback (most recent call last):
  File "<pyshell#152>", line 1, in <module>
    '42'+1
TypeError: cannot concatenate 'str' and 'int' objects
>>> str(42)
'42'
>>> str('42')
'42'
>>> repr('42')
"'42'"
>>> 

可以发现,str函数可以转到string。 repr更加傻瓜,直接包一层。

 

转到其它类型:

int(str)

float(str)

......

 

字符的转换:

#ascii码数对应数字转换。
>>> ord('s')
115
>>> chr(115)
's'

 

7.sring修改

string属于’不变序列‘。还记得tuple吗?所以下面的操作时不对的:

>>>s = 'sss'
>>>s[0] = 'a' #错误。无法成功。

所以修改string后要赋值给自己:

>>> S = 'splot'
>>> S = S.replace('pl', 'pamal')
>>> S
'spamalot'

 

8.string方法

string方法的列表如图:

我觉得例子都不需要贴了吧。

 

8.格式化string

第一篇大概讲了如何格式化string。下面详细讲讲。

这个不是很常用,会尽快更新。。。


 


 


 

 





 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值