====================================================
Python中的基本运算
Python除法中若出现浮点数,值则也为浮点数
1.0 / 2 = 1 /2.0 =0.5
使用 // 会执行整除
4 // 3 = 1
使用 % 取余(模)
8 % 3 = 2
幂运算符
2 ** 3 = 8
3 ** 3 = 27
幂运算符优先级高于一元运算符
-3 ** 2 = -9
(-3) ** 2 = 9
=====================================================
字符串拼接
一般情况下使用加好进行字符串拼接
两个相连的字符串会自动进行拼接
>>> "zheng""lu"
'zhenglu'
input 和 raw_input 的区别
#使用input输入字符串时若不加引号会报错,将input改为raw_input输如什么就会输出什么
name = input("What is your name?")
print "Hello " + name + "!"
Python中的长字符串
>>> print '''This is
... next line
... next next line'''
This is
next line
next next line
>>> print 3 + \
... + 3\
... +3
9
原始字符串
在Python中 \ 可以用于转义,在实际使用中可能出现如下问题
print 'C:\not null' 输出 \n 会自动当作换行,这种情况下就要使用 \\ 来进行转义,但是可读性差,处女座绝对接受不了
这种情况下可使用以下语句(r和输出语句间没有空格)
print r'C:\not null'
列表和元组
列表和元组都是序列,区别在于列表可以修改,元组不能修改
索引
相当于PHP的索引数组
language = ['C', 'Java', 'Python']
print language[1]
Java
~~~~~~~~~~~
name = "zhenglu"
print name[2]
e
切片
切片相当于 start <= content < end
print language[1:2]
Java
~~~~~~~~~~~~~~
print name[2:4]
en
到末尾的索引
num = [1,2,3,4,5,6,7,8]
num[-3:][6,7,8]
num[:3]
[1,2,3]
步长
步长是指两个元素之间的间隔,为切片的第三个值,正数表示正序,负数为逆序
>>> num = [1, 2, 3, 4, 5, 6, 7, 8]
>>> num[1:6:2]
[2, 4, 6]
>>> num[1::3]
[2, 5, 8]
>>> num[::3]
[1, 4, 7]
>>> num[::-2]
[8, 6, 4, 2]
序列的相加
>>> ["zheng"]+["lu"]
['zheng', 'lu']
乘法
>>> "zhenglu" * 5
'zhengluzhengluzhengluzhengluzhenglu'
>>> ['lu'] * 5
['lu', 'lu', 'lu', 'lu', 'lu']
查看元素是否在序列当中
使用 in 进行操作 返回boolean值,该操作区分大小写
language = ['C', 'Java', 'Python']
>>> 'C' in language
True
>>> 'C++' in language
False
Python中的 长度 最大值 最小值
>>> len(name)
7
>>> len(language)
3
>>> max(name)
'z'
>>> max(language)
'Python'
>>> min(name)
'e'
>>> min(language)
'C'
更改元素的值
>>> language[0] = "C++"
>>> language
['C++', 'Java', 'Python']
删除元素
删除之后序列的索引会改变
>>> del language[0]
>>> language
['Java', 'Python']
>>> language[0]
'Java'
>>> num
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> del num[4:7]
>>> num
[0, 1, 2, 3, 7, 8]
切片赋值
>>> name = list('canglaoshi')
>>> name[4:]
['l', 'a', 'o', 's', 'h', 'i']
>>> name[4:] = list('jingkong')
>>> name
['c', 'a', 'n', 'g', 'j', 'i', 'n', 'g', 'k', 'o', 'n', 'g']
切片替换
>>> num = [0,1,2,3,4,5,6,7,8]
>>> num[3:5] = ['Hello','World']
>>> num
[0, 1, 2, 'Hello', 'World', 5, 6, 7, 8]
利用切片进行删除操作
>>> num[3:5] = []
>>> num
[0, 1, 2, 5, 6, 7, 8]
append在末尾追加元素
>>> language = ['Java', 'Python']
>>> language.append('JS')
>>> language
['Java', 'Python', 'JS']
count统计指定元素出现次数
>>> av = ['苍井空','泷泽萝拉','小泽玛利亚','苍井空']
>>> av.count('苍井空')
2
>>> av.count('老毕')
0
extend扩展列表
extend和加号的区别在于使用extend是将y列表加入到x中,返回的是x,
加号则是将两个列表相加返回一个新的列表
>>> x = [2,3,4,5]
>>> y = [6,7,8,9]
>>> x.extend(y)
>>> x
[2, 3, 4, 5, 6, 7, 8, 9]
>>> y
[6, 7, 8, 9]
>>> x = [2,3,4,5]
>>> y = [6,7,8,9]
>>> x + y
[2, 3, 4, 5, 6, 7, 8, 9]
>>> x
[2, 3, 4, 5]
>>> y
[6, 7, 8, 9]
index查看元素第一次出现的索引
>>> av = ['苍井空','泷泽萝拉','小泽玛利亚','苍井空']
>>> av.index('苍井空')
0
>>> av.index('小泽玛利亚')
2
insert实现数据的插入
>>> language = ['Java', 'Python', 'JS']
>>> language.insert(1, 'PHP')
>>> language
['Java', 'PHP', 'Python', 'JS']
pop删除最后一个元素并返回值
>>> subject = language.pop()
>>> subject
'JS'
>>> language
['Java', 'PHP', 'Python']
remove删除列表中第一个匹配的项
>>> language = ['Java', 'PHP', 'Python', 'PHP']
>>> language.remove('PHP')
>>> language
['Java', 'Python', 'PHP']
reverse反转列表
>>> language.reverse()
>>> language
['PHP', 'Python', 'Java']
sort对列表进行排序
>>> language.sort()
>>> language
['Java', 'PHP', 'Python']
关于赋值后排序,直接赋值并排序是赋的一个引用,应使用以下方法进行操作
>>> x = [4,3,6,0,5,1]
>>> y = x[:]
>>> y.sort()
>>> x
[4, 3, 6, 0, 5, 1]
>>> y
[0, 1, 3, 4, 5, 6]
>>> x = [4,3,6,0,5,1]
>>> y = x
>>> y.sort()
>>> x
[0, 1, 3, 4, 5, 6]
>>> y
[0, 1, 3, 4, 5, 6]
元组
元组和列表一样,是一种序列,但元组不能进行增删改操作
元组的声明,各元素之间使用逗号进行分隔
>>> phone = 'iphone','nokia','moto'
>>> phone
('iphone', 'nokia', 'moto')
>>> phone = ('iphone','nokia','moto')
>>> phone
('iphone', 'nokia', 'moto')
空元组
>>> test = ()
>>> test
()
只有一个元素的元组
>>> only = 'love',
>>> only
('love',)
>>> only = ('love',)
>>> only
('love',)
#错误写法
>>> only = ('love')
>>> only
'love'
元组相关的操作
>>> 5 * 'gay'
'gaygaygaygaygay'
>>> 5 * 'gay',
('gaygaygaygaygay',)
>>> 5 * ('gay')
'gaygaygaygaygay'
>>> 5 * ('gay',)
('gay', 'gay', 'gay', 'gay', 'gay')
tuple函数,将输入转为元组
#字符串转为元组
>>> tuple('love')
('l', 'o', 'v', 'e')
#列表转为元组
>>> database = ['mysql','mssql','orical','mongo']
>>> tuple(database)
('mysql', 'mssql', 'orical', 'mongo')
===============================
字符串
>>> str = 'Pi is %f'
>>> pi = 3.14
>>> str % pi
'Pi is 3.140000'
>>> str = 'Pi is %.2f' # %.2f表示替换浮点数后保留两位小数
>>> pi = 3.14
>>> str % pi
'Pi is 3.14'
Template模板字符串
#替换单词
>>> from string import Template
>>> myTemplate = Template('${who} love ${name}')
>>> myTemplate.substitute(who='i',name='you')
'i love you'
#替换部分字符串
>>> myTemplate = Template('He is very ${x}B!')
>>> myTemplate.substitute(x='N')
'He is very NB!'
#使用字典来替换
>>> s = Template('i love ${who}')
>>> d = {}
>>> d['who'] = 'canglaoshi'
>>> s.substitute(d)
'i love canglaoshi'
find查找子字符串
>>> say = 'Do you love me anymore'
>>> say.find('love')
7
>>> say.find('mlgb')
-1
#find参数2可指定搜索起始位置(含)
>>> str = 'So more and more people go abroad'
>>> str.find('more')
3
>>> str.find('more', 3)
3
>>> str.find('more', 4)
12
join将序列转为字符串
>>> str = ['what','a','fuck','man']
>>> sep = " " #使用空格作为连接符
>>> sep.join(str)
'what a fuck man'
lower将大写字母转为小写
>>> str = "Life Is Like A Box Of Chocolates"
>>> str.lower()
'life is like a box of chocolates'
replace替换字符串
>>> submit = "This is hexie!"
>>> submit.replace("hexie", "*")
'This is *!'
split分隔字符串
>>> db = 'id,username,password,createtime'
>>> db.split(',')
['id', 'username', 'password', 'createtime']
strip删除字符串左右空格
>>> user = ' zhenglu '
>>> user.strip()
'zhenglu'
translate翻译替换
和replace类似,但效率比前者要高
>>> from string import maketrans
>>> table = maketrans("prefix", "apache") #只能替换长度相同的字符串
>>> str = 'prefix_log'
>>> str.translate(table)
'apache_log'
>>> str.translate(table, '_') #第二个参数用于删除指定的字符串
'apachelog'
=======================================
字典(JSON)
>>> people = {"name":"canglaoshi","qq":"123456"}
>>> people
{'qq': '123456', 'name': 'canglaoshi'}
>>> people['name']
'canglaoshi'
dict将其他序列转为字典
>>> mylist = (('site','www.baidu.com'),('name','baidu'))
>>> d = dict(mylist)
>>> d
{'site': 'www.baidu.com', 'name': 'baidu'}
>>> mylist = [('site','www.baidu.com'),('name','baidu')]
>>> d = dict(mylist)
>>> d
{'site': 'www.baidu.com', 'name': 'baidu'}
>>> mylist = [['site','www.baidu.com'],['name','baidu']]
>>> d = dict(mylist)
>>> d
{'site': 'www.baidu.com', 'name': 'baidu'}
len返回字典元素个数
>>> len(d)
2
clear清空字典
>>> d = {'site': 'www.baidu.com', 'name': 'baidu'}
>>> d.clear()
>>> d
#直接赋值指向一个地址
>>> x = {'site': 'www.baidu.com', 'name': 'baidu'}
>>> y = x
>>> y.clear()
>>> x
{}
>>> y
{}
copy浅拷贝(只拷贝一层维度)
>>> x = {'site': 'www.baidu.com', 'name': ['baidu','google']}
>>> y = x.copy()
>>> y['name'].remove('google')
>>> x
{'site': 'www.baidu.com', 'name': ['baidu']}
>>> y
{'site': 'www.baidu.com', 'name': ['baidu']}
deepcopy深度拷贝
>>> from copy import deepcopy
>>> x = {'site': 'www.baidu.com', 'name': ['baidu','google']}
>>> y = deepcopy(x)
>>> y['name'].remove('google')
>>> x
{'site': 'www.baidu.com', 'name': ['baidu', 'google']}
>>> y
{'site': 'www.baidu.com', 'name': ['baidu']}
formkeys使用指定值作为键名创建一个空字典
>>> dirc = {}.fromkeys(['name','age'])
>>> dirc
{'age': None, 'name': None}
#第二个参数可以指定默认值
>>> dirc = {}.fromkeys(['name','age'], 'Null')
>>> dirc
{'age': 'Null', 'name': 'Null'}
get更宽松的访问字典内容
>>> x = {'site': 'www.baidu.com', 'name': 'baidu'}
>>> print x['av'] #直接访问不存在的键会报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'av'
>>> print x.get('av') #使用get会返回None
None
>>> x = {'site': 'www.baidu.com', 'name': 'baidu', 'av': None}
>>> print x.get('av')
None
>>> print x.get('nba', 'Null') #若值为None,可使用第二个参数指定返回的值
Null
in、has_key查看指定键名是否存在
>>> 'name' in x
True
>>> 'baidu' in x
False
#Python3.0+ 不再支持
>>> x.has_key('name')
True
>>> x.has_key('baidu')
False
items、iteritems将字典转为列表
>>> x.items()
[('av', None), ('site', 'www.baidu.com'), ('name', 'baidu')]
>>> x.iteritems()
<dictionary-itemiterator object at 0xb76c5b44>
>>> obj = x.iteritems()
>>> list(obj)
[('av', None), ('site', 'www.baidu.com'), ('name', 'baidu')]
pop返回指定键的值并删除该键值对
>>> x = {'av': None, 'site': 'www.baidu.com', 'name': 'baidu'}
>>> x.pop('av')
>>> x
{'site': 'www.baidu.com', 'name': 'baidu'}
popitem返回并弹出列表中最后一个元素
>>> x = {'site': 'www.baidu.com', 'name': 'baidu'}
>>> x.popitem()
('site', 'www.baidu.com')
>>> x
{'name': 'baidu'}
update将一个字典更新到另一个字典中
>>> g = {'site': 'www.g.cn', 'name': 'google'}
>>> info = {'site':'www.google.com.hk'}
>>> g.update(info)
>>> g
{'site': 'www.google.com.hk', 'name': 'google'}
values返回所有值
>>> g.values()
['www.google.com.hk', 'google']
>>> g.itervalues()
<dictionary-valueiterator object at 0xb72c01e4>
>>> obj = g.itervalues()
>>> list(obj)
['www.google.com.hk', 'google']