1.Python中的变量类型:
(1)基本类型包括整型,浮点型,字符串,布尔型(True,False),空值
(2)还包括内置的数据类型list,truple。两种数据类型,前者可变,后者不可变
list的主要操作包括:insert,pop,append
(3)此外,还有dict和set类型,二者是关系型的数据结构,dict类似map,以键值对的形式存储,set是集合,保存没有重复的元素
是用如:d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
2.Python的基本语句(判断,循环):
(1)判断语句如下:
if condition: statement elif condition2: statement2 else: statement3
(2)循环包括for和while,如下
for i in range(L): data[i] = i
while i<L: data[i] = i
3.切片操作(]
data = range(10) data[:3] #[0, 1, 2] data[3:] #[3, 4, 5, 6, 7, 8, 9]
data[3:5] #[3, 4] data[3::2] #[3, 5, 7, 9]
尝试过上面的四种操作,那么对于Python中的切片操作就基本了解了,并且对我在切片标题后面写的两个括号也明白什么意思了
4.函数的定义
def myFun():
print 'myFun'
return 'myFun'
5.迭代
for i,value in enumerate(['A','B','C']): print i,value
6.函数式编程
在python中,函数名也是变量,如下:
f = abs f(-10) #10
既然函数名也是变量,那么就可以将函数作为其他函数的参数,这样的函数叫做高阶函数,如下:
def add(x, y, f): return f(x) + f(y)
在Python中有好多内置的高阶函数,例如filter,sorted,以及map/reduce,还是举个栗子
def is_odd(x): return x%2 filter(is_odd, [1,2,3,4])
sorted 用法类似sorted(list, fun)
def fun(a, b): if a>b: return 1 elif a<b: return -1 else: return 0
此外还有返回函数,匿名函数(lambda),装饰器,偏函数
7.map/reduce
之所以把mapreduce单独拿出来,毕竟在大数据中,mapreduce是一个非常重要的概念
在这里举两个例子,说明一下map和reduce的使用:
def fun(x): return x*x map(fun, [1, 2, 3])
def add(x, y):
return x+y
reduce(add, [1, 2, 3, 4]
8.模块
每个模块都需要在该文件夹下有一个__init__.py文件
import numpy as np
安装模块,使用pip工具
9.面向对象编程
(1)面向对象编程,最基本的概念就是类和对象,对象是类的实例。面向对象编程的三个特性: 封装,继承,多态。
首先看python是如何定义类的:
class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print "%s, %s" %(self.name, self.score)
类包括成员和方法,在python中,成员可以在构造函数中定义,也可以在外部进行定义。成员函数与普通函数的定义是一样的,唯一的区别就是第一个参数是self。
(2)访问限制
在python中,同样也存在公有私有成员这样的定义,成员变量默认为公有的,如果要定义为私有的变量,那么就要将上面的类中的成员变量修改如下:
class Student(object): #extends from object def __init__(self, name, score): self.__name = name self.__score = score def get_name(self): return self.__name def get_score(self): return self.__score def set_name(self, name): self.__name = name def set_score(self, score): self.__score = score def print_score(self): print "%s, %s" %(self.__name, self.__score)
(3)继承与多态
继承和多态是面向对象两个最重要的特性,具体可以参加一下代码:
class Animal(object): def run(self): print 'Animal is running' def eat(self): print 'Eating meat...' class Dog(Animal): def run(self): print 'dog is running' class Cat(Animal): def run(self): print 'cat is running'
首先看代码的结构,Animal中有两个方法,一个是run,一个是eat;此外Dog和Cat两个类都是继承自Animal。再具体看其中的方法,Dog和Cat都继承了父类Animal的eat
方法,并且重写了run方法。这里便隐含着继承和多态的思想。继承好理解,就是继承自父类的eat方法,那么多态呢?
可以通过下面这个方法来进一步理解:
def run_animal(animal): animal.run() run_animal(Animal()) run_animal(Dog()) run_animal(Cat())
运行之后我们会发现,run_animal函数会根据animal的类,调用不同的run方法,这就是多态
(3)多重继承
10.错误处理
(1)try
try: print 'try ...' r = 10/0 print 'result:',r except ZeroDivisionError, e: print 'except:', e finally: print 'finally...' print 'End'
(2)单元测试
(3)文档测试
11.IO编程
语法跟C语言一样,尽量多使用with表达式
with open('untitled0.py','r') as f: u = f.read() print u
序列化以及将dict或class转化为Json格式