python 杂货铺之不知道的python操作
1.交互模式下的神奇的_
windos中cmd交互模式中下(python2,python3),最近一个表达式的值赋给变量 _
。这样我们就可以把它当作一个桌面计算器,很方便的用于连续计算,例如:
>>> a=10/2
>>> b=2
>>> a+b
7.0
>>> a+_
12.0
此变量对于用户是只读的。不要尝试给它赋值 —— 你只会创建一个独立的同名局部变量,它屏蔽了系统内置变量的魔术效果。
2.字符串的简便方法
相邻的两个字符串文本自动连接在一起
>>> 'py' 'thon' 'niubi'
'pythonniubi' print('py' 'thon' 'niubi')
'pythonniubi'
3.去除print自带的换行功能
a='pythonlove' for i in a:
print(i,end='')
else:
print()
4.python中**运行级别高于-
print(-3**2) 结果:-9 print((-3)**2) 结果:9 因为在python中**运行级别高于-,所以第一个是先运行的**幂后加上的-负
5.匿名函数
f=lambda x:x+x
print(f(2)) print((lambda z:z+z)(2)) 结果:4
6.sort排序以及不知道的书写方式
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')] #定义一个列表存放着元祖
print((lambda pair: pair[1])(pairs)) # 使用匿名函数
pairs.sort(key=lambda pair: pair[1]) # sort排序指定使用英文来排序
print(pairs)
7.通过模块以及列表实现队列
from collections import deque #从收集模块中导入队列
li=deque([1,2,3,4,5]) 使用队列创建一个列表,也就是队列
li.popleft() 从左向右弹出
print(li)
8.python2和python3中的filter
python2
>>> def f(x): return x % 3 == 0 or x % 5 == 0
...
>>> filter(f,range(6))
[0, 3, 5]
>>> python3 >>> def f(x): return x%2==0
...
>>> list(filter(f,range(6)))
[0, 2, 4]
9.python2和python3中的map
python3 >>> def f(x): return x*x
...
>>> map(f,range(6))
<map object at 0x0000019137B7E6D8>
>>> list(map(f,range(6)))
[0, 1, 4, 9, 16, 25]
>>> python2 >>> def f(x):return x*x
...
>>> map(f,range(6))
[0, 1, 4, 9, 16, 25]
>>>
10.python3 split
a=' 3'
print(a.split()) 默认的将前后的空格自动去除 a=' 3 '
print(a.split(" ")) 结果:['', '', '', '', '', '3', '', '', '', '', '']
11.python2和python3中reduce
python2 >>> def f(x,y):return x+y
...
>>> reduce(f,range(1,6))
15
>>> python3 from functools import reduce 在python3中将reduce封装到functools模块中
def f(x,y):
return x+y print(reduce(f,range(1,6)))
12.python3.6/3.5 与 python 2.7 中popitem
==============python3.6===============
>>> dic = {'k1':1,'k2':2,'k3':'4'}
>>> print(dic)
{'k1': 1, 'k2': 2, 'k3': '4'}
>>> print(dic.popitem())
('k3', '4')
>>> print(dic.popitem())
('k2', 2)
>>> print(dic.popitem())
('k1', 1)
>>> ==============python3.5===============
>>> dic = {'k1':1,'k2':2,'k3':'4'}
>>> print(dic)
{'k1': 1, 'k3': '4', 'k2': 2}
>>> print(dic.popitem())
('k1', 1)
>>> print(dic.popitem())
('k3', '4')
>>> print(dic.popitem())
('k2', 2) python2.7和python3.5是一样的
13.python3.6/3.5 与 python 2.7 中所谓的有序及无序
================python3.6================
定义一个字典,不管字典中的key是字符串还是数字,都是有序的。 字符串:
>>> dic = {'k1':1,'k2':2,'k3':'4'}
>>> print(dic)
{'k1': 1, 'k2': 2, 'k3': '4'}
>>> 数字:
>>> dic = {1:1,2:2,3:'4'}
>>> print(dic)
{1: 1, 2: 2, 3: '4'}
>>> ================python2.7/3.5================
字符串
>>> dic = {'k1':1,'k2':2,'k3':'4'}
>>> print(dic)
{'k3': '4', 'k2': 2, 'k1': 1}
>>> 数字:
>>> dic = {1:1,2:2,3:'4'}
>>> print(dic)
{1: 1, 2: 2, 3: '4'}
>>>
14.python2/python3中print函数将内容打印到文件中的写法
python2: print >> open('a.txt','w'),'hello' print >> 这个写法就是将最后的'hello'打印到a.txt文件中,这个文件的打开方式是追加 python3: print('hello',file=open('a.txt','w')) 相对python2来说,这个就比较好理解了
15.Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠
来实现多行语句
a = '你' \
'好' \
'啊'
print(a) 结果:
你好啊
在 []
, {}
, 或 ()
中的多行语句,不需要使用反斜杠
16.查看python中的关键字方法
import keyword print(keyword.kwlist) 结果:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']