Python入门

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格式

11.进程和线程

 

posted @ 2015-04-27 20:58  SevenForever  阅读(171)  评论(0编辑  收藏  举报