数字

  • 数学模块:math

字符串(序列)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#example
>>>s='spam'
>>>len(s)
4
>>>s[0]
's'
>>>s[1]
'p'
>>>s[-1]
m
  • 在python中,索引是按照从最前面的偏移量进行编码的,也就是从0开始,第一项索引为0,第二项索引为1,以此类推.可以反向索引.
1
2
3
4
>>>s[-1]
'm'
>>>s[len(s)-1]
'm'
  • 序列也支持分片(slice)的操作:
1
2
3
4
>>>s
'spam'
>>>s[1:3]
pa
  • 字符串支持使用加号进行合并,或者重复
1
2
3
4
5
6
>>>s
'spam'
>>>s+'xyz'
'spamxyz'
>>>s*2
'spamspam'
  • Python的多态特性
  • 字符串在python中具有不可变性
  • 字符串的find方法是一个基本的子字符串查找的操作(返回一个传入子字符串的偏移量,没有的情况下返回-1),而字符串的replace方法将会对全局进行搜索和替换.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
>>> s
'helloworld'
>>> s.find('owo')
4
>>> s.find('sd')
-1
>>> s.replace('owo','wow')
'hellwowrld'
>>> s.replace('hell','ddddd')
'dddddoworld'

  • 序列的一些方法
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15

>>> s
'aaa,bbb,ccc,ddd'
>>> s.split(',')
['aaa', 'bbb', 'ccc', 'ddd']
>>> s.split('c')
['aaa,bbb,', '', '', ',ddd']
>>> s.upper()
'AAA,BBB,CCC,DDD'
>>> s.isalpha()
False
>>> s=s.rstrip()
>>> s
'aaa,bbb,ccc,ddd'
>>> 
  • 可以调用dir函数,返回一个列表,包含对象的所有属性
1
2
3
>>> dir(s)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> 
  • dir函数简单地给出了方法的名称.查询他们是做什么的,可以使用help函数help(s.upper)
1
2
3
4
5
6
7
8
9
>>> s='A\nB\tC'
>>> len(s)
5
>>> ord('\n')
10
>>> s='A\0B\0C'
>>> len(s)
5
>>> 
  • Python允许字符串包括在单引号或双引号中(代表相同的东西).也能够在三个引号(单引号或双引号)中表示多行字符串的形式
1
2
3
4
5
6
>>> msg="""
... aaaaaaaa
... bbb'''bbbbbbb""bbbcccccc"""
>>> msg
'\naaaaaaaa\nbbb\'\'\'bbbbbbb""bbbcccccc'
>>> 
  • 模式匹配:包含类似搜索,分割和替换等调用(主要找(.*))
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
>>> import re
>>> match=re.match('Hello[ \t]*(.*)world','Hello        Python world')
>>> match.group(1)
'Python '
>>> 
#搜索字符串以"Hello",并包含零个或几个制表符或空格,接着有任意字符并将其保存至匹配的group中,并最后以"world"结尾.如果找到这样的字符串,与模式中括号包含的部分与匹配的字符串的对应部分保存为组.
>>> match=re.match('/(.*)/(.*)/(.*)','/usr/home/yong')
>>> match.groups()
('usr', 'home', 'yong')
>>> 
取出三个被斜线所分割的组