Python特点
- 可读性强
- 简洁
- 解释性与交互性。即用Python编写一条程序语句,即可解释执行返回一个结果;当程序出错时更容易追踪与定位
- 优秀的模块化思维:将代码组织为若干模块,模块组织为包,甚至库
Python缺点
- 解释执行,性能较低:Python更注重编码效率,因此运行效率相对其他语言较低,
面向对象
- 注重对象。当解决一个问题时,面向对象会把事务抽象成对象的概念,就是说这个问题里面有哪些对象,然后给对象附一些属性和方法,然后让每个对象去执行自己的方法,解决问题。
例如:用洗衣机洗衣服
- 先创建2个对象:“洗衣机” 和 “人”
- 针对 “洗衣机” 这个对象加入一些属性和方法:“洗衣服方法”,“清洗方法”,“烘干方法”
- 针对 “人” 这个对象加入属性和方法: “加洗衣粉方法”,“加水方法”
- 然后执行:
人.加洗衣粉
人.加水
洗衣机.洗衣服
洗衣机.清洗
洗衣机.烘干
- 封装性:是一种星系隐蔽技术,体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装位一个整体,以实现独立性很强的模块,使得用户只能见到对象的外部特性 (对象能接受哪些消息,具有哪些处理能力), 而对象的内部特性 (保存内部状态额度私有数据和实现加工能力的算法) 对用户使隐蔽的。目的在于把对象的设计者和对象的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。
- 继承性:子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性。继承的实现方法由两类:实现继承和接口继承。实现继承指直接使用基类的属性和方法无需额外编码;接口继承指使用属性和方法的名称,但是子类必须提供实现的能力
- 多态性:指对象根据所接受的消息而做出动作,同一消息为不同的对象接受时可产生完全不同的行动。多态机制使具有不同内部结构的对象可以共享相同的外部接口
Python默认的解释器为CPython:使用c语言实现的解释器
除此之外还有Jython, IronPython, PyPy
Python开发环境
IDE:Integrated Development Environment 集成开发环境
IDE只是解释器的一个外挂,为了让程序员更加方便编程,减少出错率
IDLE开发环境入门
IDLE介绍
- IDLE 是 Python 的官方标准开发环境
- IDLE 已经具备了 Python 开发几乎所有功能(语法智能提示、不同颜色显示不同类型等等)
- IDLE 是 Python 标准发行版内置的一个简单小巧的 IDE ,包括了交互式命令行、编辑器、调试器等基本组件。
IDLE常用快捷键
快捷键 | 说明 |
F1 | 打开帮助文档 |
F5 | 运行程序 |
Ctrl+F6 | 重启shell |
Ctrl+L | 清除屏幕上的所有代码 (需要下载ClearWindow.py才能使用) |
Alt+M | 打开模块代码,先选中模块,然后按下此快捷键,会帮你打开改模块的 py 源码供浏览 |
Alt+C | 打开类浏览器,方便在源码文件中的各个方法体之间切换 |
Alt+N & Alt+P | 历史命令上一条、下一条 |
海龟绘图 (import turtle)
基础方法
>>> import turtle
>>> turtle.showturtle() #显示箭头
>>> turtle.write("晴") #写字符串
>>> turtle.forward(200) #向前画直线,长度为200像素
>>> turtle.color("red") #将画笔颜色变成 red
>>> turtle.left(90) #箭头左转90°
>>> turtle.forward(100)
>>> turtle.goto(0, 250) #从当前位置开始,画线到坐标(0, 250)
>>> turtle.penup() #抬笔,此后所有动作都不会画出来
>>> turtle.goto(-50, 100)
>>> turtle.pendown() #下笔,与penup()相反,之后的路径都会画出来
>>> turtle.pensize(10) #将笔的粗细变成10
>>> turtle.circle(150) #以当前位置开始,逆时针画一个半径为150的圆
练习:画五角星
import turtle
turtle.showturtle()
turtle.pensize(5)
turtle.pencolor("gold")
turtle.fillcolor("red")
turtle.begin_fill() #开始填充
for i in range(5):
turtle.forward(120)
turtle.right(144)
turtle.forward(120)
turtle.left(72)
turtle.end_fill() #结束填充,此时才会填充内部颜色
turtle.hideturtle()
turtle.done()