zoukankan      html  css  js  c++  java
  • 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.进程和线程

  • 相关阅读:
    新版ubuntu中打开终端的方法和安装ssh 的方法
    HTML中利用404将老域名重定向到新域名
    KeelKit 1.0.3500.25185
    如何制作VSPackage的安装程序
    一副漫画:IE6滚回你老家去
    “表单控件”与“实体类”
    VS2005中得到 Web页面 或 窗体的 IDesignerHost
    一句SQL搞定分页
    CodeDom Assistant CodeDom的强大工具, 有些BUG修正了下,发到CodePlex,大家有需要的可以看看
    VS2005 出现 The OutputPath property is not set for this project. 错误的解决方法
  • 原文地址:https://www.cnblogs.com/xiamaogeng/p/4461356.html
Copyright © 2011-2022 走看看