Python语言程序设计(嵩天)-第2周-Python基本图形绘制

目录 :
-2.1 深入理解Python语言
-2.2 实例2: Python蟒蛇绘制
-2.3 模块1: turtle库的使用
-2.4turtle程序语法元素分析

第2章 Python基本图形绘制

课程导学

前课复习

Python基本语法元素

  • 缩进、注释、命名、变量、保留字
  • 数据类型、字符串、整数、浮点数、列表
  • 赋值语句、分支语句、函数
  • input()、print()、eval()、print()格式化

保留字
在这里插入图片描述

温度转换

#TemConvert.py
TemStr = input("请输入带有符号的温度值:")
if TemStr[-1] in ['F', 'f']:
	C = (eval(TemStr[0:-1]) - 32)/1.8
	print("转换后的温度是{:.2f}C".format(C))
elif TemStr[-1] in ['C', 'c']:
	F = 1.8*eval(TemStr[0:-1]) + 32
	print("转换后的温度是{:.2f}F".format(F))
else:
	print("输入格式错误")

本课概要

  • 2.1 深入理解Python语言
  • 2.2 实例2: Python蟒蛇绘制
  • 2.3 模块1: turtle库的使用
  • 2.4turtle程序语法元素分析
  • 方法论-Python语言及海龟绘图体系
  • 实践能力-初步学会使用Python绘制简单图形
  • 练习(可选)-5道编程@Python123
  • 测验-10道单选+2道编程@Python123

-2.1 深入理解Python语言

目录:

  • 计算机技术的演进
  • 编程语言的多样初心
  • Python语言的特点
  • "超级语言"的诞生

小结:

  • 计算机系统结构时代到人工智能时代的演进路线
  • 五种编程语言的初心和历史使命
  • Python语言的通用性、简洁性和生态性
  • Python是以计算生态为标志的"超级语言"

2.1.1 计算机技术的演进

在这里插入图片描述
在这里插入图片描述

2.1.2 编程语言的多样初心

编程语言有哪些?
Basic, C,C++, C#, CSS, Fortran, Go, HTML, Java,
JavaScript, Lisp, Lua, Matlab, Object C, Pascal, Perl, PHP,
PostScript, Python, Ruby, Scala, SQL, Swift, VBA,
VB.NET, Verilog, VHDL, Visual Basic
编程语言,也是一个江湖!

不同编程语言的初心和适用对象
在这里插入图片描述

2018年以后的计算环境…
计算机性能不再是解决一般问题的瓶颈
移动互联网广泛普及
大数据、云计算、物联网、信息安全、人工智能等需求爆发
解决日益增长的计算需求,用什么语言?

2.1.3 Python语言的特点

-Python语言是通用语言
-Python语言是脚本语言
-Python语言是开源语言
-Python语言是跨平台语言
-Python语言是多模型语言
Guido van Rossum
Python语言创立者
2002年,Python2.x
2008年,Python3.x

python特点与优势
在这里插入图片描述

如何看待python语言?
人生苦短,我学Python
-C/C++:Python归Python,C归C
-Java:针对特定开发和岗位需求
-HTML/CSS/JS:不可替代的前端技术,全栈能力
-其他语言:R/Go/Matlab等,特定领域

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

工具决定思维:关注工具变革的力量!

2.1.4 "超级语言"的诞生

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

-一种将二进制代码直接对应助记符的编程语言
-汇编语言与CPU型号有关,程序不通用,需要汇编器转换
-完成2+3 功能的汇编语言add 2,3,result

高级语言

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

超级语言

-具有庞大计算生态,可以很容易利用已有代码功能
-编程思维不再是刀耕火种,而是集成开发
-完成2+3 功能的超级语言result = sum(2,3)

编程语言种类的发展

在这里插入图片描述
Python: 唯一的"超级语言"!
Python前进的步伐不可阻挡

-2.2 实例2: Python蟒蛇绘制

2.2.1 问题分析

用程序绘制一条蟒蛇
-貌似很有趣,可以来试试
-先学会蟒蛇绘制,再绘朵玫瑰花送给TA

设计蟒蛇的基本形状
在这里插入图片描述

  • 问题1: 计算机绘图是什么原理?
    一段程序为何能够产生窗体?为何能在窗体上绘制图形?
  • 问题2: Python蟒蛇绘制从哪里开始呢?
    如何绘制一条线?如何绘制一个弧形?如何绘制一个蟒蛇?

在这里插入图片描述

2.2.2 实例编写

#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(20, 80)
	turtle.ciecle(-40, 80)
turtle.ciecle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 188)
turtle.fd(40 * 2/3)
turtle.done()

使用IDLE的文件方式
编写代码
并保存为
PythonDraw.py 文件

运行效果:
在这里插入图片描述

在这里插入图片描述

2.2.3 举一反三

Python语法元素理解

  • Python蟒蛇绘制共17行代码,但很多行类似
    -清楚理解这17行代码能够掌握Python基本绘图方法
    -参考框架结构、逐行分析、逐词理解

程序参数的改变

  • Python蟒蛇的颜色:黑色、白色、七彩色…
  • Python蟒蛇的长度:1节、3节、10节…
  • Python蟒蛇的方向:向左走、斜着走…

计算问题的扩展

  • Python蟒蛇绘制问题是各类图像绘制问题的代表
  • 圆形绘制、五角星绘制、国旗绘制、机器猫绘制…
  • 掌握绘制一条线的方法,就可以绘制整个世界

在这里插入图片描述
更多作品参考

-2.3 模块1: turtle库的使用

目录:

  • turtle库基本介绍
  • turtle绘图窗体布局
  • turtle空间坐标体系
  • turtle角度坐标体系
  • RGB色彩体系

小结:

  • turtle库的海龟绘图法
  • turtle.setup()调整绘图窗体在电脑屏幕中的布局
  • 画布上以中心为原点的空间坐标系: 绝对坐标&海龟坐标
  • 画布上以空间x轴为0度的角度坐标系: 绝对角度&海龟角度
  • RGB色彩体系,整数值&小数值,色彩模式切换

2.3.1 turtle库基本介绍

turtle库概述
turtle(海龟)库是turtle绘图体系的Python实现
-turtle绘图体系:1969年诞生,主要用于程序设计入门
-Python语言的标准库之一
-入门级的图形绘制函数库

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

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

在这里插入图片描述

2.3.2 turtle绘图窗体布局

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3.3 turtle空间坐标体系

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

import turtle
turtle.goto( 100, 100)
turtle.goto(100, -100)
turtle.goto(-100, -100)
turtle.goto(-100, 100)
turtle.goto(0, 0)

在这里插入图片描述

在这里插入图片描述

2.3.4 turtle角度坐标体系

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)

2.3.5 RGB色彩体系

由三种颜色构成的万物色

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

常用RBG色彩
在这里插入图片描述

在这里插入图片描述

turtle的RGB色彩模式“
默认采用小数值 可切换为整数值

turtle.colormode(mode)
  • 1.0:RGB小数值模式
  • 255:RGB整数值模式

在这里插入图片描述

-2.4turtle程序语法元素分析

目录:

  • 库引用与import
  • turtle画笔控制函数
  • turtle运动控制函数
  • turtle方向控制函数
  • 基本循环语句
  • "Python蟒蛇绘制"代码分析

小结:

  • 库引用: import、from…import、import…as…
  • penup()、pendown()、pensize()、pencolor()
  • fd()、circle()、seth()
  • 循环语句:for和in、range()函数

2.4.1-库引用与import

.()的编码风格

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()

库引用:
扩充Python程序功能的方式
-使用import保留字完成,采用.()编码风格
import<库名>
<库名>.<函数名>(<函数参数>)

例子中引入turtle库
使用turtle库函数完成功能
可是可是, 好多turtle,很繁琐嘛…

import更多用法:
使用from和import保留字共同完成
from<库名> import<函数名>
from<库名> import*
<函数名>(<函数参数>)

在这里插入图片描述

from turtle import*
setup(650, 350, 200,200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):
	circle(40, 80)
	circle(-40, 80)
circle(40, 80/2)
fd(40)
circle(16, 180)
fd(40 * 2/3)
done()

import更多用法:
两种方法比较:
在这里插入图片描述
import<库名>
<库名>.<函数名>(<函数参数>)

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

第一种方法不会出现函数重名问题,第二种方法则会出现

使用import和as保留字共同完成:
import<库名> as<库别名>
<库别名>.<函数名>(<函数参数>)
给调用的外部库关联一个更短、更适合自己的名字
在这里插入图片描述

import turtle as t
t.setup(650, 350, 200, 200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i in range(4):
t.circle(40, 80)
t.circle(-40, 80)
t.circle(40, 80/2)
t.fd(40)
t.circle(16, 180)
t.fd(40 * 2/3)
t.done()

2.4.2-turtle画笔控制函数

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()

penup(), pendown()
pensize(), pencolor()

画笔控制函数:
画笔操作后一直有效,一般成对出现

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

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

  • turtle.pensize(width) 别名turtle.width(width)
    画笔宽度,海龟的腰围
  • turtle.pencolor(color) color为颜色字符串或r,g,b值
    画笔颜色,海龟在涂装

pencolor(color)的color可以有三种形式

  • 颜色字符串:turtle.pencolor(“purple”)
  • RGB的小数值:turtle.pencolor(0.63, 0.13, 0.94)
  • RGB的元组值:turtle.pencolor((0.63,0.13,0.94))

在这里插入图片描述

import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
foriinrange(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()

penup()
pendown()
pensize(width)
pencolor(colorstring)
pencolor(r,g,b)
pencolor((r,g,b))

2.4.3-turtle运动控制函数

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述

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

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

2.4.4-turtle方向控制函数

在这里插入图片描述
控制海龟面对方向: 绝对角度& 海龟角度

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

在这里插入图片描述

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

在这里插入图片描述

2.4.5-基本循环语句与range()函数

在这里插入图片描述

循环语句:
按照一定次数循环执行一组语句
for<变量> inrange(<次数>):
<被循环执行的语句>

  • <变量>表示每次循环的计数,0到<次数>-1

在这里插入图片描述

range()函数:
产生循环计数序列

  • range(N)产生0 到N-1的整数序列,共N个
    eg. range(5)——0, 1, 2, 3, 4
  • range(M,N)产生M 到N-1的整数序列,共N-M个
    eg. range(2, 5)——2, 3, 4

在这里插入图片描述

2.4.6-"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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值