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']

  

  

更新中......

05-11 15:15