1. 复习
- 缩进、注释、命名、变量、保留字
- 数据类型、字符串、整数、浮点数、列表
- 赋值语句、分支语句、函数
- input() print() eval() print()格式化
- 缩进
语句间的层次关系,语法的1部分
缩进不对,程序运行会出错 - 注释
辅助说明文字,不被程序所运行 - 命名、变量、保留字(33个)
保留字:python语法中使用的标识符
变量命名时不能使用保留字 - 数据类型
2. python基本图形绘制
1. 深入理解python语言
- 计算机技术的演进
- 编程语言的多样初心
- python语言的特点
- 超级语言的诞生
- 计算机技术的演进
- 1946-1981 计算机系统结构时代 35Y(计算能力问题 通过计算机设备提供更加充分、充足、好用的计算能力)
1946 1st 计算机诞生
1981 1st IBM PC机诞生 - 1981-2008 网络和视窗时代 27Y(交互问题 人机、机机 网络:互联网,视窗:windows视窗操作系统)
2008 安卓OS诞生 PC时代向移动时代转换 - 2008-2016 复杂信息系统时代 (数据问题)
2017.5.27 柯洁最终0:3 AlphaGo
云计算、大数据、网络安全 - 2016- 人工智能时代 (人类问题)
- 编程语言的多样初心
- C
学习内容: 指针、内存、数据类型
语言本质: 理解计算机系统结构
解决问题: 性能
适用对象: 计算机类专业 - JAVA
学习内容: 对象、跨平台、运行时
语言本质: 理解主客体关系
解决问题: 跨平台
适用对象: 软件类专业 - C++
学习内容: 对象、多态、继承
语言本质: 理解主客体关系
解决问题: 大规模程序
适用对象: 计算机类专业 - VB
学习内容: 对象、按钮、文本框
语言本质: 理解交互逻辑(人机)
解决问题: 桌面应用
适用对象: 不确定 - PYTHON
学习内容: 编程逻辑、第3方库
语言本质: 理解问题求解
解决问题: 各类问题
适用对象: 所有专业
- python语言的特点
通用(不局限于某1门类的应用)、脚本、开源、跨平台、多模型
-
语法简洁
强制可读性 (整洁、漂亮)
较少底层语法元素 (不操作内存和低级接口,使编程简单)
多种编程方式
支持中文字符 -
生态高产
13万第3方库,每年增长2万个
快速增长的计算生态
避免重复造轮子
开放共享
跨OS -
人生苦短,我学python
-
python归python,C归C
-
Java针对特定开发和岗位需求(安卓手机端)
-
html/css/js 不可替代的前端技术、全栈能力
-
R/Go/Matlab 特定领域
工具决定思维
- 编程语言的种类
- 机器语言
1种2进制语言,直接使用2进制表达指令
计算机硬件(CPU)可直接执行,与具体CPU型号有关 - 汇编语言
1种将2进制代码直接对应助记符的编程语言
与CPU型号有关,程序不通用,需汇编器转换
2+3: add 2,3,result - 高级语言
更接近自然语言,同时更容易描述计算问题
与具体CPU型号无关,编译后运行
2+3: result=2+3 - 超级语言 (python)
大计算生态,易利用已有代码功能
集成开发的编程思维
2+3: result=sum(2,3)
机器语言: 代码直接执行,与CPU型号有关
汇编语言:有助记符,汇编器,与CPU型号有关
高级语言:更接近自然语言,编译器/解释器,与CPU型号无关
超级语言:粘性整合已有程序,具备庞大计算生态
2. 实例2: python蟒蛇的绘制
[分析] 设计蟒蛇的基本形状
- 计算机绘图的原理
窗体的产生
在窗体上绘制图形 - 绘制从何开始
线?弧?蛇?
起点?
# PythonDraw.py
import turtle #程序关键 import 库
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()
变换一下:
颜色、长度、方向
各类图像绘制的代表
3. turtle库的使用
- 基本介绍
- 绘图窗体布局
- 空间坐标体系
- 角度坐标体系
- RGB色彩体系
1. 基本介绍
turtle绘图体系
1969, 主要用于程序设计入门
python语言的标准库之一
入门级图形绘制函数库
python计算生态=标准库+第3方库
标准库: 随解释器直接安装到OS中的功能模块
第3方库:需经安装才能使用的功能模块
Library 库
Package 包
Module 模块
2. turtle的原理
turtle是真实存在的
- 有1只海龟,在窗体正中心,在画布上游走
- 走过的轨迹形成了绘制的图形
- 由程序控制,变色、改变宽度
2. turtle绘图窗体布局
画布空间
最小单位为像素
电脑屏幕最左上角坐标为(0,0)
turtle.setup(width,height,startx,starty)
其中startx,starty可选
turtle.setup()
设置了窗体大小及位置,并不是必需的,默认为正中间
turtle.setup(800,400,0,0)
turtle.setup(800,400)
默认为正中间
3. turtle空间坐标体系
- 绝对坐标
turtle.goto(x,y)
- 海龟坐标
turtle.fd(d)
前进
turtle.bk(d)
后退
turtle.circle(r,angle)
4. turtle角度坐标体系
改变方向但不前进!!!
- 绝对角度
turtle.srth(angle)
- 海龟角度
turtle.left(angle)
turtle.right(angle)
5. RGB色彩体系
R RED
G GREEN
B BLUE
3种及出色构成万物色
RGB表示模式有2种: 0-255/0-1
turtle默认为0-1
turtle.colormode(mode) #1.0/25
4. turtle程序语法元素分析
- 库引用与import
<a>.<b>()的编码风格
库引用,扩充python程序功能的方式
- import <库名>
<a>.<b>()
<库名>.<函数名>(<函数参数>) - from <库名> import <函数名>
from <库名> import *
<函数名>.(<函数参数>)
可能会函数重名,产生冲突 - import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
- turtle画笔控制函数
turtle.penup() #pu()
turtle.pendown() #pd()
turtle.pensize() #width()
turtle.pencolor() #color string/小数值r,g,b/元组织(r,g,b)
- 运动控制函数
turtle.fd(d) #forward()
turtle.circle(a,extent=None)
- 方向控制函数
turtle.seth(angle) #setheading()
turtle.left()
turtle.right()
- 循环语句和range()函数
for i in range(4):
- 循环语句
按一定循环次数执行一组语句
for <变量> in range(参数):
<被循环执行的语句>
for i in range(5):
print("Hello,",i) #此处的,会在控制台输出时变为空格
# Hello, 0
# Hello, 1
# Hello, 2
# Hello, 3
# Hello, 4
range() #产生循环计数序列的函数
range(N) # 0 -> N-1
range(5) # 0,1,2,3,4
range(M,N) # M -> N-1
range(2,5) # 2,3,4
ps
末尾加上 turtle.done()
后,需手动关闭窗口
3. python123
- import只有三种使用方法,以turtle库为例:
import turtle
from turtle import setup 或 from turtle import *
import turtle as t (其中t是别名,可以更换其他名称) - turtle坐标系的原点默认在窗体正中间
turtle绘图体系以水平右侧为绝对方位的0度
turtle库最早成功应用于LOGO编程语言
turtle库是一个直观有趣的图形绘制函数库 - 坐标系类似这样,角度坐标系的绝对0度方向是右侧
- circle(x, y) 表示 以x长度为半径,y为角度,当前方向左侧x出为圆心,画圆,其中x和y都可以是负数,相应取反
- circle()函数不能绘制椭圆形
- turtle.pendown()只是放下画笔,并不绘制任何内容
turtle.penup()的别名有turtle.pu(),turtle.up()
turtle.colormode()的作用是设置画笔RGB颜色的表示模式
turtle.width()和turtle.pensize()都可以用来设置画笔尺寸 - bk()只能后退,但不改变方向,"后退"不是"转向"
- 循环相关保留字是:for…in和while,但def用于定义函数,不相关
- circle(x,y)函数的用法,绘制半圆,第二个参数y是180的奇数
- turtle.done()用来停止画笔绘制,但绘图窗体不关闭
- turtle八边形绘制
#OctagonDraw.py
import turtle as t
t.pensize(2)
for i in range(8):
t.fd(100)
t.left(45)
- turtle八角图形绘制
import turtle as t
t.pensize(2)
for i in range(8):
t.fd(150)
t.left(135)