第一天
学习Python 的目的是希望能够用Python来做数据分析,做一些小游戏和小软件。
每天学习一个半小时以上,第二天复习的时候整理昨天学习过的知识,发到博客上来。
2015年8月31日开始第一天的学习。
主要学习的内容有配置开发环境、基本语法(第一个程序、变量、判断语句、循环、定义函数、面向对象、引入Python文件)、Web开发框架Web2py
配置开发环境:
2.X版本主要特点是运行快,存在时间长。 所以推荐这个版本
3.X版本主要特点是兼容的语言更多,但是存在时间短,包不多。 暂时不推荐
pycharm,在jetbrians上下载,配置开发环境,快捷键选择eclipse就可以了
其他也可以使用VIM等
python的编程环境是不识别中文的,要注意尽量不要用中文 如果一定要使用,记得在程序的最前面加上一行代码: # coding=utf-8
基本语法
第一个程序
面向过程的思维:直接输入Print("Hello World!") 再执行就可以了。
面向对象的思维:首先分析有哪些类、哪些对象。类应该有哪些属性哪些方法,类与类之间有什么关系。
可以抽象成一个类,属性有World。方法有print。只有一个类,只实例化一个对象。
以下是代码部分
class hello: name = '' def __init__(self,n): self.name = n def speak(self): print("Hello %s!")%(self.name) h = hello('World') h.speak()
变量
和C语言都差不多的
可以直接定义
另外,结尾不用加;
判断语句
if elif 作为判断的语句
if 后接判断的语句,最后再接:
循环
for循环 可以直接用range
字符串不同类型不匹配,可以采用以下格式 “Item{0}{1}”.format(i,"hello")
定义函数
定义采用def 如果不需要参数,就直接函数加空括号 如果需要参数,就函数后面的括号里加上参数字符
引入python文件
import 使用整个文件
或者from 可以使具体的函数或者类
面向对象
对象和类的概念
对象
属性
方法
类是一类事物的抽象,定义了这一类对象所具有的静态和动态属性
成员变量
方法
类可以看成一类对象的模板,对象可以看成该类的一个具体事例。
类之间的关系
关联关系是最弱的关系
一个类的方法是另一个类具体的对象
继承关系(一般和特殊)
**是一种**
聚合关系(整体和部分)
**是**的一部分
组合是密不可分 聚集并不是密不可分的
实现关系
具有一定的方法
由子类去实现
多态
找类最简单的就是找名词
对象和引用
对象是程序的核心,万事万物皆对象 必须先定义类才能有对象
对象可以看成是静态属性(成员变量)和动态属性(方法、函数)的封装体
类是用来创建同一类型的对象的模板,在一个类中定义了该类对象所应具有的成员变量以及方法
可以使用本身的类,也可以自己定义类
为什么使用对象
resuable/extensibility/维护和更替、、、、
组件
EJB、WebService、CORBA、COM、、、
对象隐藏内部服务的实现
西乡由对外服务的接口
面向对象的编程——一组对象相互配合通过沟通完成特定功能
类的定义
使用class定义
类体有属性和方法两个部分组成
成员变量
首先声明再赋值最后使用
成员变量和局部变量 成员变量可以初始化也可以不初始化,默认初始化 局部变量不可不赋值,不会默认初始化
成员变量的作用范围是整个类体
引用
除基本类型之外的变量类型都称之为引用类型
对象是通过引用对其操作的
引用类型占两个位置
类是静态的概念,代码区
对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)而方法只有一份,执行的时候才占用内存
对象的创建和使用
必须使用new关键字创建对象
使用对象(引用).侧面会爱么变量或来引用对象的成员变量
使用对象(引用).方法(参数列表)来调用对象的方法
同一类的每个对象有不同的成员变量存储空间
同一类的每个对象共享该类方法
构造函数
使用new+构造方法创建一个新的对象
一定要构造函数与类同名且没有返回值,甚至不能加void
在类中的一个用来初始化对象的函数
调用构造方法
当没有指定构造函数时,编译器自动分配
Web开发框架Web2py
创建web2py项目
直接创建web2py工程就可以了
处理静态文件
可以在pycharm编辑
也可以在网页编辑
编写控制器
通过控制器来定位代码