学习机器学习,Python是一个绕不过的东西,本周快速学了一下Udacity的Python编程基础课,做个入门了解。内容比较简单,看完的总体感受,这是让零基础的人产生兴趣,这个是免费课程,有兴趣的同学自己去看就行了。下面简单总结一下课程基础知识点:
1、Python的安装
直接到Python官网下载安装就行了。
安装完成后就可以使用自带的开发环境IDLE进行编程了。
默认字体比较小可以自己在配置里修改。
2、Python的基础语法
用一个最简单的例子告诉我们Python的用法,相当于HelloWorld。告诉大家程序结构、函数使用,基本语法等。具体需要用到什么,自己查询官方文档,或google百度就行了。
import webbrowser
import time
print("start program!"+time.ctime())
count = 0
while(count<9):
webbrowser.open("www.baidu.com")
time.sleep(5)
count = count +1
更多语法内容,可以直接看官方文档或找一找别人的总结。
3、类的使用
类包含各种属性和方法,我们使用这些方法就能实现不同的功能。可视化的是最容易让人产生兴趣的。用Turtle类来绘制图形,三角形等几何形状,能够快速了解如何使用类。
import turtle
def draw_square(somedraw):
for i in range(1,5):
somedraw.forward(100)
somedraw.right(90)
def draw_circle():
window = turtle.Screen()
#draw rect
brad = turtle.Turtle()
brad.shape("turtle")
brad.color("green")
brad.speed(5)
for i in range(1,37):
draw_square(brad)
brad.right(10)
window.exitonclick()
draw_circle()
执行F5运行后的结果:
4、模块的使用
Python既有内置模块,也有外部模块,内置模块就直接使用,外部模块需要从网上安装。
1)模块的安装
比如要安装发送短信的模块 twilio,那么就两步(Windows下)
第一步:用管理员打开cmd工具
第二步:执行安装命令
pip install twilio
2)import和from的区别
简单来说就是导入包和导入类的区别。
- import datetime是引入整个datetime包,如果使用datetime包中的datetime类,需要加上模块名的限定。
import datetime print datetime.datetime.now()
- from datetime import datetime是只引入datetime包里的datetime类,在使用时无需添加模块名的限定。
from datetime import datetime print datetime.now()
注:简单的模块一般倾向于使用import,而不是from。
5、如何编写类
一个类包含函数和变量,同时也有自己的构造函数,用来分配内存和空间,用 __init__()表示。
6、类的继承和多态
1)继承
在OOP(Object Oriented Programming)程序设计中,当我们定义一个class的时候,可以从某个现有的class
继承
,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。
Python 与其他语言不同点在于,当我们定义一个 class 的时候,我们实际上就定义了一种数据类型。我们定义的数据类型和Python自带的数据类型,比如str、list、dict没什么两样。
Python 有两个判断继承的函数:isinstance() 用于检查实例类型;issubclass() 用于检查类继承。
2)多态
我们在 Child 类中重写 print_title() 方法:
当子类和父类都存在相同的方法时,子类的方法会覆盖了父类的方法,这就是多态。比如下面例子中,
多态的好处就是,当我们需要传入更多的子类,可以直接用,也可以重写。调用方只管调用,不管细节,而当我们新增一种的子类时,只要确保新方法编写正确,而不用管原来的代码。这就是著名的“开闭”原则:
- 对扩展开放(Open for extension):允许子类重写方法函数
- 对修改封闭(Closed for modification):不重写,直接继承父类方法函数
例子:
class Parent():
def __init__(self,last_name,eye_color):
print("Parent Constructor Called")
self.last_name = last_name
self.eye_color = eye_color
def show_info(self):
print("last name -- "+self.last_name)
print("eye color -- "+self.eye_color)
class Child(Parent):
def __init__(self,last_name,eye_color,number_of_toys):
print("Child Constructor Called")
Parent.__init__(self,last_name,eye_color)
self.number_of_toys = number_of_toys
def show_info(self):
print("Child name -- "+self.last_name)
print("Child color -- "+self.eye_color)
miley_cyrus = Child("Cyrus","blue",5)
print(miley_cyrus.last_name)
print(miley_cyrus.number_of_toys)
miley_cyrus.show_info()