基础总结

一、函数

1、调用函数

要调用一个函数,需要知道函数的名称和参数

abs(X)

函数帮助:help(函数名)

2、定义函数

def语句,依次写出函数名、括号、括号中的参数和冒号:函数体  return语句做返回

函数的参数检查:

二、函数参数

1、默认参数

如果经常计算平方,可以设置默认参数=2,这样调用的时候直接pow(x),不要加默认参数

       循环:

  •  while循环
    • 条件满足则不断循环,否则退出。初始化二个值:n = 值    sum = 值
  • for......in循环

               依次把list或tuple中的每个元素迭代出来

              

            默认参数指向不变的对象,不能是列表

2、可变参数

传入的参数是可变的

调用函数:calc(1, 2)

调用已经存在的list或是truple

3、关键字参数

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

 

*args是可变参数,args接收的是一个tuple;

 

**kw是关键字参数,kw接收的是一个dict。

 

def person(name, age, **kw):
    print 'name:', name, 'age:', age, 'other:', kw

   

关键字参数有什么用?它可以扩展函数的功能。比如,在person函数里,我们保证能接收到nameage这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到。试想你正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这个函数就能满足注册的需求。

 4、参数组合

参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

三、传入函数

1、变量指向函数

2、高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

 

调用add(-5, 6, abs)

 四、模块

1、一个.py文件就是一个模块

为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)

包里面有一个__init__.py文件,注意

调用包的模块:mycompany.abc

编写一个hello.py模块,里面定义一个test方法 def test(),应用

>>>import hello

调用模块的方法>>>hello.test()

2、作用域

正常的函数和变量名是公开的(public),可以被直接引用,比如:abcx123PI等;

 类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author____name__就是特殊变量

 类似_xxx__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc__abc等;

 

我们在模块里公开greeting()函数,而把内部逻辑用private函数隐藏起来了,这样,调用greeting()函数不用关心内部的private函数细节,这也是一种非常有用的代码封装和抽象的方法

五、安装第三方模块

1、安装第三方模块

是通过setuptools这个工具完成的。Python有两个封装了setuptools的包管理工具:easy_installpip。目前官方推荐使用pip

如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。

 pip install PIL

六、面向对象

一个对象包含了数据和操作数据的函数

如果采用面向对象的程序设计思想,我们首选思考的不是程序的执行流程,而是Student这种数据类型应该被视为一个对象,这个对象拥有namescore这两个属性(Property)。如果要打印一个学生的成绩,首先必须创建出这个学生对应的对象,然后,给对象发一个print_score消息,让对象自己把自己的数据打印出来。

 

调用

>>> bart.name = 'Bart Simpson'

比如我们定义的Class——Student,是指学生这个概念,而实例(Instance)则是一个个具体的Student,比如,Bart Simpson和Lisa Simpson是两个具体的Student:

 数据封装、继承和多态是面向对象的三大特点

2、数据封装

方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据

 

posted @ 2017-06-23 09:35  bell1991  阅读(116)  评论(0编辑  收藏  举报