python语言程序设计——【第二周】Python基本图形绘制

228 阅读8分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情

2.1深入理解Python语言

2017-           人工智能时代  人类的问题
                    在这之间缓冲的"新计算时代"
2008-2016   复杂信息系统时代    数据问题

1981-2002 网络和视窗时代   交互问题

1946-1981   计算机系统结构时代   计算能力问题

不同编程语言的初心和适用对象

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

Python语言的特点

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

Python语言的特点与优势:

  1. 强制可读性

  2. 较少的底层语法元素

  3. 多种编程方式

  4. 支持中文字符

  5. C代码量的10%(语法简洁)

  6. 生态高产(有13万第三方库)

    1. 快速增长的计算生态
    2. 避免重复造轮子
    3. 开放共享
    4. 跨操作系统平台
C/C++:Python归Python,C归C
Java:针对特定开发和岗位需求
HTML/CSS/JS:不可替代的前端技术,全栈能力
其他语言:R/Go/Matlab等,特定领域

编程语言的种类

机器语言

  1. 一种二进制语言,直接使用二进制代码表达指令
  2. 计算机硬件(CPU)可以直接执行,与具体CPU型号有关
  3. 完成2+3功能的机器语言

汇编语言

  1. 一种将二进制代码直接对应助记符的编程语言
  2. 汇编语言与CPU型号有关,程序不通用,需要汇编器转换
  3. 完成2+3功能的汇编语言(比如add,2,3,result的意思就是将第一参数2和第二参数3相加存到result里面)

高级语言

  1. 更接近自然语言,同时更容易描述计算问题
  2. 高级语言代码与具体CPU型号无关,编译后运行
  3. 完成2+3功能的高级语言(result = 2 + 3)

超级语言

  1. 粘性整合已有程序,具有庞大计算生态。可以很容易利用已有代码功能
  2. 编程思维不再是刀耕火种,而是集成开发
  3. 完成2+3功能的高级语言:result = sum(2,3)。只要传值进去就能出结果,不需要考虑中间的过程

2.2实例:Python蟒蛇绘制

  1. 用程序绘制一条蟒蛇

    1. 问题1:计算机绘图是什么原理?

      1. 一段程序为何能够产生窗体?为何能在窗体上绘制图形?
    2. 问题2:Python蟒蛇绘制从哪里开始呢?

      1. 如何绘制一条线?如何绘制一个弧形?如何绘制一个蟒蛇

代码演示

#PythonDraw.py
import turtle#引入了一个绘图库,名叫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()

image-20220711143627462

2.3模块1:turtle库的使用

turtle库基本介绍

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

    1. turtle绘图体系:1969年诞生,主要用于程序设计入门
    2. Python语言的标准库之一
    3. 入门级的图形绘制函数库
  2. 标准库

    1. Python计算生态 = 标准库 + 第三方库
    2. 标准库:随解释器直接安装到操作系统中的功能模块
    3. 第三方库:需要经过安装才能使用的功能模块
    4. 库Library、包Package、模块Module,统称模块
  3. turtle原理

    1. turtle(海龟)是一种真实的存在
    2. 有一只海龟iu,其实在窗体正中心,在画布上游走
    3. 走过的轨迹形成了绘制的图形
    4. 海龟由程序控制,可以变换颜色,改变宽度等

turtle绘图窗体布局

  1. turtle的绘图窗体

    1. 是turtle的一个画布,最小单位是像素
    2. turtle.setup(width,height,startx,starty)#窗体的宽度,高度,起始点的x、y坐标(相对于屏幕边缘的坐标)。后两参数可选
      -setup()设置窗体大小及位置
      -setup()函数不是必须的
      后两个参数只是决定窗体出现在你屏幕中的哪个位置,如果不设置默认位于屏幕正中间
      

turtle空间坐标体系

  1. 绝对坐标

    1. 原点位于窗体正中间,形成一个xy坐标系
    2. turtle.goto(x,y)#让在任何位置的海龟(无论在哪里)到达某个位置
      #到达那个位置形成的是一条直线
      
  2. 海龟坐标

    1. 1. 上:左侧方向
      2. 下:右侧方向
      3. 左:后退方向——>turtle.bk(d)#向海龟的反方向运行
      4. 右:前进方向——>turtle.fd(d)#向海龟的正前方向运行
      turtle.circle(r,angle)#以海龟当前位置左侧的某一个点为圆心进行曲线运行
      

turtle角度坐标体系

  1. 绝对角度

    1. 上:90/-270度
    2. 下:270/-90度
    3. 左:180/-180度
    4. 右:0/360度
  2. seth(angle)改变海龟的行进方向

    1. 只改变方向不行进
    2. 参数angle为绝对度数
  3. 海龟角度

    1. 上:turtle.left(angle)
    2. 下:turtle.right(angle)

RGB色彩体系

  1. 是由三种颜色构成的万物色

    1. PGB指红蓝去三个通道的颜色组合
    2. 覆盖视力能感知的所有颜色RGB每色取值范围0-255整数或0-1小数
    3. turtle默认采用RGB的小数值来表示颜色,我们也可以手动切换到整数值表示
    4. turtle.colormode(mode)#这是切换颜色表现形式的,mode为下方要填入的数值
      -1.0:RGB小数值模式
      -255:RGB整数值模式
      

2.4turtle程序语法元素分析

-库引用与import

  1. 扩充Python程序功能的方式

    1. 使用import保留字完成,采用.()编码风格

      1. import<库名>
      2. <库名>.<函数名>(<函数参数>)来调用相关功能
  2. import更多用法

    1. 使用from和import保留字共同完成

      1. from<库名>import<函数名>
      2. from<库名>import* 使用这中方法后就可以直接使用函数名加函数参数了,不需要再每个都加上库的名字
      3. <函数名>(<函数参数>)
    2. 使用import和as保留字共同完成(推荐)

      1. import<库名> as <库别名>
      2. <库别名>.<函数名>(<函数参数>)
      3. 给调用的外部库关联一个更短、更适合自己的名字

-turtle画笔控制函数

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

    1. turtle.penup() 别名 turtle.pu()

      1. 抬起画笔的意思,海龟在飞行
    2. turtle.pendown 别名 turtle.pd()

      1. 落下画笔,海龟在爬行
    3. turtle.pensize(width) 别名 turtle.width(width)

      1. 画笔宽度,海龟的腰围
    4. turtle.pencolor(color) color为颜色字符串或者r,g,b值

      1. 画笔颜色,海龟的涂装

      2. pencolor(color)的color有3种形式

        1. 颜色字符串:turtle.pencolor("purple")
        2. RGB的小数值:turtle.pencolor(0.63,0.13,0.94)
        3. RGB的元组值:turtle.pencolor((0.63,0.13,0.94))

-turtle运动控制函数

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

    1. turtle.forword(d) 别名 turtle.fd(d)

      1. 向前行进,海龟走直线
      2. d:行进距离,可以为负数
    2. turtle.circle(r,extent=None)

      1. 根据半径r绘制extent角度的弧形
      2. r:默认圆心在海龟左侧r距离的位置(半径)
      3. extent:绘制角度,默认是360度整圆(旋转角度)

-turtle方向控制函数

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

    1. turtle.setheading(angle) 别名 turtle.seth(angle)

      1. 改变行进的方向,海龟走角度
      2. angle:改变行进的方向,海龟走角度
    2. turtle.left(angle)海龟向左转 这是海龟角度,上面那个是绝对角度

      1. turtle.right(angle)海龟右转
      2. angle:旋转的角度

基本循环语句

循环语句与range函数

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

  2. for <变量> in range(<参数>)
    	<被循环执行的语句>
    	--<变量>表示每次循环的计数,0-<次数>-1
    	
    	例如>>>>for i in range(5):
            print(i)#打印出来就是0 1 2 3 4
            
        	例如>>>>for i in range(5):
            print("鱼皮说:"i)
            #打印出来就是
            #鱼皮说:0
            #鱼皮说:1
            #鱼皮说:2
            #鱼皮说:3
            #鱼皮说:4
    
  3. range()函数

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

-Python蟒蛇绘制代码分析