【笔记】《python语言程序设计》—python基本图形绘制

一、前言

学习就是一个不断的自下而上,自上而下的过程。

前段时间,学着用python实现网站的数据爬取,隐约get到python的一些语法和用法,感觉就是语法不难,关键在于解决问题的思维。

这是需求驱动后的学习。接下来,就需要对python进行系统地了解。

很早之前搜知乎的时候,就搜到MOOC上的一门《python语言程序设计》课程,讲得很好,而且,我还下载了课件,溜了一遍,感觉就挺有趣的。

趁着有了实战经验,就把这门入门课刷了一遍。果然是门好课!很适合小白入门,并系统学习,整个教学过程循序渐进,深入浅出,提纲挈领,很有意思!

课程是北京理工大学嵩天老师的《python语言程序设计》课程,现在已经开了11次课了。课程每个小视频短则几分钟,最长也不超过20分钟,不容易劝退。每章讲解有复习回顾及小结,在平台python123上有每章的练习和测试,直接反馈结果,激发继续学下去的兴趣。

个人感觉,老师说话速度慢了些,调成了2倍速播放,然后,花了大约3天的时间,把所有的视频,课件,练习和测试都刷了一遍,感觉对python的了解更系统了!

趁热打铁,把每章的知识点和练习、测试再进行整理回顾一下。

以下内容均来自课程:《python语言程序设计》平台python123,感兴趣的看课程视频,亲自练习,效果更好~

二、知识点

1. 深入理解Python语言

  1. 计算机技术的演进过程:现在为新计算时代

    年份 时代 问题
    2017-至今 人工智能时代 人类的问题
    2008-2016 复杂信息系统时代 数据问题
    1981-2008 网络和视窗时代 交互问题
    1946-1981 计算机系统结构时代 计算能力问题
  2. 不同编程语言的初心和适用对象

    编程语言 学习内容 语言本质 解决问题 适用对象
    C 指针、内存、数据类型 理解计算机系统结构 性能 计算机类专业

| Java | 对象、跨平台、运行时 | 理解主客体关系 | 跨平台 | 软件类专业 |
| C++ | 对象、多态、继承 | 理解主客体关系 | 大规模程序 | 计算机类专业 |
| VB | 对象、按钮、文本框 | 理解交互逻辑 | 桌面应用 | 不确定 |
| Python | 编程逻辑、第三方库 | 理解问题求解 | 各类问题 | 所有专业 |

  1. Python语言的特点

    ①Python语言是通用语言、脚本语言、开源语言、跨平台语言、多模型语言;

    ②Python特点与优势:语法简洁(C代码量的10%;强制可读性;较少的底层语法元素;多种编程方式;支持中文字符);生态高产(15万第三方库;快速增长的计算生态;避免重复造轮子;开放共享;跨操作系统平台);

    ③“超级语言”的诞生:机器语言→汇编语言→高级语言→超级语言;python是唯一的“超级语言”;

2. 实例2:Python蟒蛇绘制

蟒蛇绘制.png
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()

3. turtle库的使用

  1. turtle库基本介绍

    ①turtle(海龟)库:是turtle绘图体系的Python实现;Python语言的标准库之一;入门级的图形绘制函数库;

    ②turtle绘图体系:1969年诞生,主要用于程序设计入门;

    ③标准库:随解释器直接安装到操作系统中的功能模块;

    ④第三方库:需要经过安装才能使用的功能模块;

  2. turtle绘图窗体布局

turtle的绘图窗体.png
turtle的绘图窗体2.png
  1. turtle空间坐标体系
turtle空间坐标体系1.png
turtle空间坐标体系2.png
  1. turtle角度坐标体系
turtle角度坐标体系1.png
turtle角度坐标体系2.png
  1. RGB色彩体系

    ①RGB每色取值范围0-255整数或0-1小数

    ②默认采用小数值,可切换为整数值:turtle.colormode(mode),其中mode包括1(RGB小数值模式);255(RGB整数值模式);

4. turtle程序语法元素分析

  1. 库的引用与import:import <库名>import <库名> as <库别名>``from <库名> import <函数名>; from <库名> import *;

  2. turtle画笔控制函数:

    ①. penup(): 别名pu(), 抬起画笔,海龟在飞行;
    ②. pendown(): 别名pd(), 落下画笔,海龟在爬行;
    ③. pensize(): 别名width(), 画笔宽度,海龟的腰围;
    ④. pencolor(): 画笔颜色,海龟在涂装;例如,turtle.pencolor(‘purple’), turtle.pencolor(0.63,0.13,0.94), turtle.pencolor((0.63,0.13,0.94))

  3. turtle运动控制函数:控制海龟走直线还是走曲线

    ①. fd(d): 别名forward(d), 向前行进,海龟走直线;d为行进距离,可以为负数;

    ②. circle(r, extent=None): 根据半径绘制extent角度的弧形;r为默认圆心再海龟左侧r距离的位置;extent为绘制角度,默认是360度整圆;

运动控制函数.png
  1. turtle方向控制函数:控制海龟面对方向

    ①. 绝对角度:turtle.setheading(angle), 别名turtle.seth(angle),改变行进方向,海龟走角度;

seth().png

②. 海龟角度:turtle.left(angle),海龟向左转;turtle.right(angle),海龟向右转;angle为海龟当前行进方向上旋转的角度;

  1. 循环语句:按照一定次数循环执行一组语句;

  2. range()函数:产生循环计数序列;range(N):产生0到N-1的整数序列,共N个;range(M,N):产生M到N-1的整数序列,共N-M个;

循环语句.png

三、练习

1. 实例2: Python蟒蛇绘制

同上

2. turtle正方形绘制

描述:使用turtle库,绘制一个正方形。

正方形.png
import turtle as t
t.setup(900,900)
t.pensize(5)
for i in range(0,4):
    t.fd(200)
    t.right(90)
t.fd(200)
t.done()

3. turtle六边形绘制

描述:使用turtle库,绘制一个六边形。

六边形.png
import turtle as t
t.setup(900,900)
t.penup()
t.fd(-200)
t.pendown()
t.pensize(5)
for i in range(0,6):
    t.fd(200)
    t.left(60)
t.done()

4. turtle叠边形绘制

描述:使用turtle库,绘制一个叠边形,其中,叠边形内角为100度。

叠边形.png
import turtle as t
t.setup(900,900)
t.pensize(5)
for i in range(0,9):
    t.fd(200)
    t.left(80)
t.done()

5. turtle风轮绘制

描述:使用turtle库,绘制一个风轮效果,其中,每个风轮内角为45度,风轮边长150像素。

提示:turtle.goto(x,y)函数,能够将turtle画笔移动到坐标(x,y)

风轮.png
import turtle as t
t.setup(500,500)
t.pensize(4)
t.goto(0,150)
t.circle(-150,45)
t.goto(0,0)
t.right(45)
t.goto(150,0)
t.circle(-150,45)
t.goto(0,0)
t.right(45)
t.goto(0,-150)
t.circle(-150,45)
t.goto(0,0)
t.right(45)
t.goto(-150,0)
t.circle(-150,45)
t.goto(0,0)

四、测试

1.选择题

  1. 哪个选项不能正确引用turtle库进而使用setup()函数?

    A import setup from turtle

    B from turtle import*

    C import turtle as t

    D import turtle

import只有三种使用方法,以turtle库为例:

import turtle

from turtle import setup 或 from turtle import *

import turtle as t (其中t是别名,可以更换其他名称)

  1. 关于turtle库,哪个选项的描述是错误的?

    A turtle坐标系的原点默认在屏幕左上角

    B turtle库是一个直观有趣的图形绘制函数库

    C turtle库最早成功应用于LOGO编程语言

    D turtle绘图体系以水平右侧为绝对方位的0度

turtle坐标系的原点默认在窗体正中间

  1. 哪个选项是turtle绘图中角度坐标系的绝对0度方向?

    A 画布正下方 B 画布正右方 C 画布正上方 D 画布正左方

坐标系类似这样,角度坐标系的绝对0度方向是右侧

  1. 哪个选项是下面代码的执行结果?

    turtle.circle(-90,90)
    

    A 绘制一个半径为90像素的弧形,圆心在小海龟当前行进的左侧

    B 绘制一个半径为90像素的整圆形

    C 绘制一个半径为90像素的弧形,圆心在小海龟当前行进的右侧

    D 绘制一个半径为90像素的弧形,圆心在画布正中心

circle(x, y) 表示 以x长度为半径,y为角度,当前方向左侧x出为圆心,画圆。其中x和y都可以是负数,相应取反。

  1. 关于turtle库绘图函数,哪个选项的描述是错误的?

    A turtle.seth(to_angle)函数的作用是设置小海龟当前行进方向为to_angle,to_angle是角度的整数值

    B turtle.circle(radius, extent=None)函数的作用是绘制一个椭圆形,extent参数可选

    C turtle.fd(distance)函数的作用是向小海龟当前行进方向前进distance距离

    D turtle.pensize(size)函数的作用是改变画笔的宽度为size像素

circle()函数不能绘制椭圆形。

  1. 关于turtle库的画笔控制函数,哪个选项的描述是错误的?

    A turtle.width()和turtle.pensize()都可以用来设置画笔尺寸

    B turtle.colormode()的作用是设置画笔RGB颜色的表示模式

    C turtle.pendown()作用是落下画笔,并移动画笔绘制一个点

    D turtle.penup()的别名有turtle.pu(),turtle.up()

turtle.pendown()只是放下画笔,并不绘制任何内容。

  1. 哪个选项不能改变turtle画笔的运行方向?

    A left() B bk() C right() D seth()

bk()只能后退,但不改变方向,"后退"不是"转向"。

  1. 哪个选项所列保留字能够实现对一组语句的循环执行?

    A while和def B if和else C for和in D range()

循环相关保留字是:for..in和while,但def用于定义函数,不相关。

  1. 哪个选项能够使用turtle库绘制一个半圆形?

    A turtle.circle(100) B turtle.circle(100, -180)

    C turtle.circle(100, 90) D turtle.fd(100)

circle(x,y)函数的用法,绘制半圆,第二个参数y是180的奇数倍。

  1. 哪个选项对turtle.done()的描述是正确的?

    A turtle.done()放在代码最后,是turtle绘图的必要要求,表示绘制完成 B turtle.done()用来隐藏turtle绘制画笔,一般放在代码最后

    C turtle.done()用来停止画笔绘制,但绘图窗体不关闭

    D turtle.done()用来暂停画笔绘制,用户响应后还可以继续绘制

建议在每个turtle绘图最后增加turtle.done()。

2.程序设计题

  1. turtle八边形绘制

描述:使用turtle库,绘制一个八边形。

八边形.png
import turtle as t
t.pensize(2)
for i in range(0,8):
    t.fd(100)
    t.left(45)
  1. turtle八角图形绘制

描述:使用turtle库,绘制一个八角图形。

八角图形.png
import turtle as t
t.pensize(2)
for i in range(0,8):
    t.fd(150)
    t.left(135)

【笔记】《python语言程序设计》—Python基本语法元素

【笔记】《python语言程序设计》—Python基本图形绘制

【笔记】《python语言程序设计》——基本数据类型

【笔记】《python语言程序设计》——程序的控制结构

【笔记】《python语言程序设计》——函数和代码复用

【笔记】《python语言程序设计》——组合数据类型

【笔记】《python语言程序设计》——文件和数据格式化

【笔记】《python语言程序设计》——程序设计方法学

【笔记】《python语言程序设计》——python计算生态概览

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

推荐阅读更多精彩内容