第四篇:strings

来源:互联网 发布:3*3矩阵的行列式怎么求 编辑:程序博客网 时间:2024/05/17 02:36

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)abc>>>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 formatC:\new\text.dat>>> len(path)                     # String length15


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 ouputTrue

这里又用到了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'+1Traceback (most recent call last):  File "<pyshell#152>", line 1, in <module>    '42'+1TypeError: 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。下面详细讲讲。

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


 


 


 

 





 

原创粉丝点击