美文网首页python学习笔记
【笔记】《python语言程序设计》—python基本图形绘制

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

作者: Hobbit的理查德 | 来源:发表于2020-03-16 21:23 被阅读0次

    一、前言

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

    前段时间,学着用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计算生态概览

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/yknoehtx.html