Nov 24
第11章 统一网络控制器Func详解
配置iptables
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 51235 -j ACCEPT
#配置开通192.168.1.0/24网段访问服务51235端口
Python
%whos
#使用whos查看当前的变量空间
Variable Type Data/Info
----------------------------
a int 1
b list n=3
可以使用 ! 来执行一些系统命令。
!ping baidu.com
Anaconda
第一次安装好 Anaconda 以后,可以在命令行输入以下命令使 Anaconda 保持最新:
conda update conda
conda update anaconda
conda 是一种很强大的工具,具体用法可以参照它的文档。
也可以参考它的 cheat sheet 来快速查看它的用法。
可以使用它来安装,更新,卸载第三方的 python 工具包:
conda install
conda update
conda remove
在安装或更新时可以指定安装的版本号,例如需要使用 numpy 1.8.1:
conda install numpy=1.8.1
conda update numpy=1.8.1
查看 conda 的信息:
conda info
一个很棒的功能是 conda 可以产生一个自定义的环境,假设在安装的是 Python 2.7 的情况下,想使用 Python 3.4,只需要在命令行下使用 conda 产生一个新的环境:
conda create -n py34 python=3.4
这里这个环境被命名为 py34 ,可以根据喜好将 py34 改成其他的名字。
使用这个环境时,只需要命令行下输入:
activate py34 #(windows)
source activate py34 #(linux, mac)
此时,我们的 Python 版本便是 python 3.4了。
spyder编辑器
输入:$spyder
集合Set
s = {2,3,3,4}
s —->{2,3,4}
集合的长度: len(s)
添加元素:s.add(1)
集合的交: a & b
集合的并: a | b
集合的差: a - b
Dictionary:
key-value d[“dogs”]=5
d.keys() 所有的键
d.values() 所有的值
d.items() 所有键值对
数组numpy Arrays
from numpy import array
a = array([1,2,3,4])
a + 2
>> array([1,2,3,4])
画图 Plot
python提供了一个很像matlab的绘图接口
%matplotlib inline
from matplotlib.pyplot import plot
plot(a,a**2)
文件操作File IO
写文件
f = open('data.txt','w')
f.write("your word")
f.close()
读文件
f=open('data.txt')
data = []
for lind in f:
data.append([int(field) for field in line.split()])
f.close()
- 类 Class
用class来定义一个类。 Person(object)表示继承自object类; init函数用来初始化对象; self表示对象自身,类似于C Java里面this。
网络数据 Data from Web
import urllib2
ge_csv = urllib2.urlopen(url)
data = []
for line in ge_csv:
data.append(line.split(','))
data[:4]
获取某个变量的类型: type(b)
简单操作
加法:
s = ‘hello ’ + ‘world’
Out[3]:
‘hello world’
字符串与数字相乘:
“echo” * 3
Out[4]:
‘echoechoecho’
字符串长度:
len(s)
Out[5]:
11
连接
与分割相反,s.join(str_sequence)的作用是以s为连接符将字符串序列str_sequence中的元素连接起来,并返回连接后得到的新字符串:
In [8]:
s = ’ ’
s.join(numbers)
Out[8]:
‘1 2 3 4 5’
In [9]:
s = ‘,’
s.join(numbers)
Out[9]:
‘1,2,3,4,5’
强制转换为字符串
str(ob)强制将ob转化成字符串。
repr(ob)也是强制将ob转化成字符串。
不同点如下:
In [23]:
str(1.1 + 2.2)
Out[23]:
‘3.3’
In [24]:
repr(1.1 + 2.2)
Out[24]:
‘3.3000000000000003’
list的索引与分片:
a = [10, 11, 12, 13, 14]
In[7]: a[0]
Out[7]: 10
反向索引:
In [8]: a[-1]
Out[8]: 14
分片:
In [9]: a[2:-1]
Out[9]: [12, 13]
a[2:-1] 指数组a的第三个元素到最后一个元素(不包含最后一个元素)
a[2:] 指数组a的第三个元素到最后一个元素(包含最后一个元素)
分片的替换:
Input : a[10,11,12,13,14]
Input:a[1:3]=[1,2]
Result: a=[10,1,2,13,14]
对于连续的分片,Python 采用的是整段替换的方法,两者元素的个数不需要相同。
如:a[1:3]=[1,2,3,4,5,6]
Result: a=[10,1,2,3,4,5,6,13,14]
所以也可以用这种方法删除某一段分片:
a[1:3]=[]
Result: a=[10,13,14]
步长为2:
a[10,11,12,13,14]
a[::2]=[1,2,3]
Result: a=[1,11,2,13,3]
使用del删除某元素
del a[0]
或者某一段:del a[1:]