【2】Python基本图形绘制

深入理解Python语言

计算机技术的演进

  • 1946-1981:计算机系统结构时代——计算能力问题
  • 1981-2008:网路与视窗时代——交互问题
  • 2008-2016:复杂信息系统时代——数据问题
  • 新计算时代
  • 2016-:人工智能时代——人类的问题

编程语言的多样初心

超过600种编程语言。

  • C
    • 学习内容:指针、内存、数据类型
    • 语言本质:理解计算机系统结构
    • 解决问题:性能
    • 适用对象:计算机类专业
  • Java
    • 学习内容:对象、跨平台、运行时
    • 语言本质:理解主客体关系
    • 解决问题:跨平台
    • 适用对象:软件类专业
  • C++
    • 学习内容:对象、多态、继承
    • 语言本质:理解主客体关系
    • 解决问题:大规模程序
    • 适用对象:计算机类专业
  • VB
    • 学习内容:对象、按钮、文本框
    • 语言本质:理解交互逻辑
    • 解决问题:桌面应用
    • 适用对象:不确定
  • Python
    • 学习内容:编程逻辑、第三方库
    • 语言本质:理解问题求解
    • 解决问题:各类问题
    • 适用对象:各类专业

2018年后:
计算机性能不再是解决一般问题的瓶颈。
移动互联网广泛普及。
大数据、云计算、物联网、人工智能等需求日益增大。

深入理解Python语言

Pyhton语言是通用语言。

特点与优势:

语法简洁

  • 强制可读性
  • 较少的底层语法元素
  • 多种编程方式
  • 支持中文字符

提高将近10倍效率。
生态高产

  • 13万第三方库
  • 快速增长的计算生态
  • 避免重复造轮子
  • 开放共享
  • 跨操作系统平台

人生苦短,我学Python

  • C/C++:Python归Python,C归C
  • Java:针对特定开发和岗位
  • HTML/CSS/JS:不可替代的前端技术,全栈能力
  • 其他语言:R/Go/Matlab等,特定领域

Python 语言:

  • 掌握抽象并求解计算问题综合能力的语言
  • 了解产业界解决复杂计算问题方法的语言
  • 享受利用编程将创新变为乐趣实现的语言

“超级语言”的诞生

编程语言的种类

  • 机器语言
    • 二进制语言,直接使用二进制代码表达指令
    • 计算机硬件(CPU)可以直接执行,与具体CPU型号有关
  • 汇编语言
    • 将二进制代码对应助记符
    • 与CPU型号有关,程序不通用,需要汇编器转换
  • 高级语言
    • 接近自然语言,更容易描述计算问题
    • 与具体CPU型号无关,编译后运行
  • 超级语言
    • 具有庞大计算生态,可以很容易利用已有代码功能
    • 编程思维不再是刀耕火种,而是集成开发

Python:唯一的超级语言

实例2:Python蟒蛇绘制

设计蟒蛇基本形状。

Python蟒蛇

实例编写:

#PythonDraw.py
import turtle
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()

举一反三

  • 改变形状
  • 改变颜色
  • 绘制其他图像

模块1:turtle库的使用

turtle库概述

turtle(海龟)库是turtle绘图体系的Python体现

  • 标准库之一
  • 入门级绘图函数库

标准库:随解释器直接安装到操作系统中的功能模块
第三方库:通过安装才能使用的功能模块
库Library,包Package,模块Module,统称模块

turtle库的原理

turtle(海龟)是一种真实的存在。

  • 有一只海龟,在窗体正中间,在画布上游走
  • 走过的轨迹变成了图形
  • 可以改变大小和颜色

turtle绘图窗体布局

turtle的绘图窗体

turtle的一个画布空间,最小单位为像素。

屏幕坐标系

  • 屏幕左上角坐标为(0,0)
  • 使用turtle.setup(width, height, startx, starty)设置窗体大小及位置,后两个参数可选。后两个参数去掉,窗体在屏幕中居中。

turtle空间坐标体系

绝对坐标

  • 以海龟起始为原点,往上为+y,往右为+x。
  • 使用turtle.goto(x,y)使任意位置的海龟到达(x,y)

海归坐标

  • 前进方向,左侧方向,右侧方向,后退方向。
  • 前进:turtle.fd(d)
    后退:turtle.bk(d)
    左转:turtle.circle(r,angle)

turtle角度坐标体系

绝对角度

  • +x方向:0/360度;+y方向:90/-270度
  • 使用turtle.seth(angle)改变当前海龟行进方向,只改变方向但不行进。angle为绝对度数

海龟角度

  • turtle.left(angle)turtle.right(angle),改变海龟的方向
    例:
import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
绘制字母Z

RGB色彩体系

由三种颜色构成的万物色

  • 指红绿蓝三个通道的颜色组合
  • 覆盖实力所能感知的所有颜色
  • RGB每色取值范围0-255整数或0-1小数

常用RGB颜色

英文名称 RGB整数值 RGB小数值 中文名称
white 255,255,255 1,1,1 白色
yellow 255,255,0 1,1,0 黄色
magenta 255,0,255 1,0,1 洋红
cyan 0,255,255 0,1,1 青色
blue 0,0,255 0,0,1 蓝色
black 0,0,0 0,0,0 黑色

默认采用小数值标时颜色。可切换为整数值
使用turtle.colormode(mode) 可改变模式颜色模式。1.0为小数模式,255为整数模式。

库引用与import

turtle程序语法元素分析

扩充Pyhton程序功能的方式

  • 使用import保留字完成,采用<a>.<b>()的编码风格
import <库名>
<库名>.<函数名>(<函数参数>)

使用fromimport保留字共同完成

from <库名> import <函数名>

from <库名> import *
<函数名>(<函数参数>)

不需要加<库名>.
<库名>.<函数名>(<函数参数>)不会出现函数重名的问题。

使用importas保留字共同完成

import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
  • 关联一个更短、更适合的名字,同时避免重名

turtle画笔控制函数

画笔操作后一直有效,一般成对出现

  • turtle.penup()别名turtle.pu(),抬起画笔,海龟在飞行
  • turtle.pendown()别名turtle.pd(),放下画笔,海龟在爬行

画笔设置有一直有效,直到下一次重新设置

  • turtle.pensize(width)别名turtle.width(width),设置画笔宽度,海龟的腰围
  • turtle.pencolor(color)设置画笔颜色,color为颜色字符串或r,g,b值
    • 颜色字符串:turtle.pencolor("purple")
    • RGB的小数值:turtle.pencolor(0.63,0.13,0.94)
    • RGB的元组值:turtle.pencolor((0.63,0.13,0.94))

turtle运动控制函数

控制海龟行进:走直线&走曲线

  • turtle.forward(d)别名turtle.fd(d),向前行进,海龟走直线
    • d为距离,可以为负数
  • turtle.circle(r,extent=None)根据半径r绘制extent角度的弧形,圆心在海龟左侧。默认角度为360度。半径为负数时,圆心在海龟右侧

turtle方向控制函数

控制海龟面对方向:绝对角度&海龟角度

  • turtle.setheading(angle)别名turtle.seth(angle)改变行进方向,海龟走角度。角度值为绝对角度
  • turtle.left(angle)turtle.right(angle)让海龟向左或向右转。角度为海龟角度
  • 仅改变方向,不会使海龟行进

循环语句与range()函数

循环语句:按一定次数循环执行一组语句

for <变量> in range(<参数>)
    <被循环执行的语句>
  • <变量>表示每次循环的计数,0到次数-1
  • <参数>为次数

range()产生循环计数序列

  • range(N)产生0到N-1的整数序列,共N个数字
  • range(M,N)产生从M到N-1的整数序列,共N-M个数字

turtle.done()绘图完成后窗口不会自动关闭

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • 已经开始了正式的课程,是不是觉得一下就一点儿枯燥了,没有了前两天那种轻松的心情,不过这就是学习嘛。因为自己还在...
    十木_03阅读 2,298评论 1 6
  • 1.课程导学1.1前课复习 1.2本课概要2.深入理解python语言 2.1 计算机技术的演进 2.2 编程语...
    liustudy阅读 1,874评论 0 3
  • 一、测试准备: 1.准备至少2台压测服务器,命令ifconfig检查内网ip,需在同一个网段 2.2台服务器上分别...
    谢幕_a7ab阅读 1,843评论 0 4
  • 人本身性格,处事方式各异,所以不论做什么都有一定的难度和阻力,做好事费劲吃力,做坏事还得处心积虑,所以说你不容易,...
    朔泉明贤阅读 246评论 1 1
  • 床底小世界 估计每个小朋友都有钻到床底下玩耍的经历吧,小耀也不例外。小耀喜欢钻在爸...
    小坏不算坏阅读 145评论 0 0