NumPy  丰富的数值计算

SciPy  科学计算

NLTK   自然语言处理

MLpy   基于最上面两种的机器学习模块

Shogun  大规模机器学习工具箱

OpenStack 完全用python实现的开源的laaS的解决方案


参考社区:华蟒用户组


在模块第一行加上 #!/usr/bin/python 指的是用python去运行文件,用./module.py既可以运行这个py文件,只能在mac和linux上运行


python文件默认是ASCII码编码,因此不支持中文,如有中文,需在开头加:#coding:utf8。指明文件编码方式是Unicode编码。

python的长×××是不受限制的,其优点大于×××。

python的浮点型是C的double,支持16位精度小数。也支持复数。

除法“/”,如果两测都是整数,则四舍五入,如果两侧中有一个是浮点型的,则是标准除法;

地板除“//”,除法保留整数部分;

取余“%”,乘方“**”

不支持++,--,可有a+=1 实现自加;

python是弱类型,自动识别,加引号是字符串,不加是数。


序列类型:

1.列表List:可存不同的数据类型,支持下标访问,可任意增长;

  用[]去表示;[1,2,'123'],可用append去添加

2.元组tuple:类似于列表,但是不能修改;

  用()来定义;

以上两个:用len去求长度,in去判断是否含有元素,如3 in [1,2,3];切片slice,获取列表子集!

如l=[1,2,3]  l[1:3]  把2,3切出来。l不变。

3.字符串;

  是对象,也支持len,切片方法,支持三引号,'''html''',里面内容支持换行。


布尔类型:true和false

字典:

类似java的hashmap,是键值对。key-value,key必须是可以hash的值。列表不可以做key,元组可以做,基本原因是元组是不可改变的。两边是大括号

d = {::}

d[]


python里用缩进代替大括号,要保证缩进一致!!!一般在“:”后面会缩进,指明这一块为代码块;

如下:利用缩进去判断是否是同一块代码块!

num = num > :
    :


while更像是循环;

for更像是遍历;遍历后面列表里的值;

 []:

和for常配合使用的是range函数;

i ():
    i

range的前是封闭,后面是开放的,(起点,终点,步长);


while和for都支持一个对应的else分支,表示当前循环是正常退出的情况下,会执行else分支中的代码;在不正常退出时,如break退出,则不会执行else里的语句;


i ():
    i
:


异常处理封装在try-except里面,后面可以跟else,如无异常则可执行else里的代码:

d = {:}
:
    d[]
:
    :


函数的定义:

用def来定义函数,函数本身也是个对象,可以赋值给一个变量;

(scount):
    count > :
        s
    :
        func()

a = func

a()


类:

通过class来定义一个类;允许多重继承,构造函数__int__(self)

:
    (number):
        . = number

a = A()
a.


导入模块的变量

python中有很多标准的模块,标准库;使用import+模块名来导入,使用.来访问和使用变量和函数

sys
os
os.path.dirname(__file__)


下面是两个例子:判断字符串中是否有重复的,判断是否是回文

def isDuplicate(string):
    flag = 0
    for i in range(0,len(string)-1):
        for j in range(i+1,len(string)):
            if string[i]==string[j]:
                print "false"
                flag = 1
                break
            else:
                continue
        if flag == 1:
            break
    else:
        print "true"


def isPalindrome(string):
    head = 0
    back = len(string)-1
    flag = 1
    for i in range(0,len(string)):
        if head < back:
            if string[head] == string[back]:
                head+=1
                back-=1
                continue
            else:
                flag = 0
                break
        else:
            break
    if flag == 1:
        print("true")
    else:
        print "false"