python编程入门课之turtle绘图
(2022-07-08 15:39:07)分类: 研究-学习 |
python编程课
两个点入手: 入门、趣味
准备从turtle绘图和与结合数学知识编程入手。
turtle艺术编程、九章视频号及童晶老师视频号
数学知识可分为简单的如质数、绘制函数图形等入手;高阶的如二分法求多元方程的解等。
北大陈斌《python艺术编程》
第一课
python 艺术 编程
python:一种应用最广泛的程序设计语言
通过程序表达图形创意
从零基础开始学习入门级编程
建立基本的算法能力
(双鱼图、彩球 玫瑰花等图案)
需要的基本知识:
算术:四则运算、余数、平方、开平方
代数:多项式、方程式、函数
几何:点、直线、圆弧、多边形、直角坐标、角度方向
计算机:键盘输入、鼠标操作、文件和目录操作、浏览网页
什么是程序?
按照固定的步骤完成一个任务叫“程序”
生活中处处是程序
作息时间、烘焙、乐谱(顺序、重复、分情形)
计算机程序设计语言:
按照固定的步骤让计算机完成一个任务就是计算机程序
分为顺序、重复、分情形
指挥计算机完成任务需要讲计算机能懂的语言
“方言众多,各有偏重”
python最平易近人的计算机程序设计语言
功能强大、应用广泛
python长什么样子?
#1、导入海龟模块
import turtle
#2、生成一只海龟,做一些设定
t=turtle.Turtle()
t.pencolor('blue')
t.pensize(3)
#3、用海龟作图
for i in range(5):
#4、结束作图
t.hideturtle()
turtle.done()
从上到下的顺序
每行一条语句
没有作用的行
左对齐
缩进
熟悉python编程环境
编程流程:输入代码--保存代码文件--运行代码
直接在网页编程
http://pyln.fun/
http://console.basthon.fr/
在线编程(北大附中创意编程python)
建议安装thonny编辑器 https://thonny.org
书写python代码注意点:
字母、数字和符号不能错、漏
空格、空行和注释一般无所谓
字母大小写区分【按住键盘上的shift】
符号一定是英文符号
上下对齐和缩进不能马虎
代码编辑器会帮助你对齐和缩进
作业1:抄写“五角星”代码
绘制一个蓝色五角星
可以试试修改程序:
换种颜色? 改变大小?改变笔道粗细?笔改成别的形状?
作业2:抄写“随便点单”代码
特别注意标点符号
可以尝试修改:
随便甜品店? 随便外卖?一次上两个随便?两位客人的随便点单?
import random
random.seed()
menu=['咖啡','红茶','可乐','牛奶','矿泉水']
print('随便水吧,专治选择困难症!')
print('我们有:',menu)
name=input(" 请问怎么称呼?")
drink=random.choice(menu)
print(name,"您好,随便上了一杯",drink)
============================
lesson2
海龟作图基本指令
绘制简单线划图
海龟作图:turtle
模拟海龟在沙滩上爬行所描绘的轨迹【坐标】
几个基本要素:
【逐条描述】
forward(100)
left(120)[如何计算而来]
forward(100)
left(120)
forward(100)
left(120)
作图程序模板
首先,导入turtle模块
然后,生成一只海龟
程序主题:用作图语句绘图
最后结束作图:
#1.导入海龟模块
import turtle
#2.生成一只海龟,做一些设定
t=turtle.Turtle()
t.pencolor('red') #画笔颜色
t.pensize(3) #画笔粗细
#3.用海龟作图
for i in range(5):
#4.结束作图
t.hideturtle()
turtle.done()
在线编程地址:pyln.fun/p/new
课堂练习1
绘制一个蓝色的等边三角形
课堂练习2
绘制一个绿色晶体 ()食盐的晶体是立方体
自己计算角度,确定边长
【分解 外部正六边形;起笔位置的确定;不能一笔画完,可以重复】
课堂练习3
绘制一个不可能三角形
颜色自定
【角度分析,边长】
更多图形
钻石、小房子、松树
===========================================
lesson3
绝对定位:goto,setheading[之前的前进后退左转右转是相对的位置]
抬笔落笔:penup,pendown
画圆 circle
填充颜色 fillcolor begin_fill end_fill
新功能:直接设置位置goto/朝向setheading
goto(x,y) 海龟直接去到制定的坐标
setheading(角度)
直接设定海龟的朝向 0度是正东方向,逆时针为正方向
新功能:抬笔落笔【画八卦之一 水】
抬笔 penup()
落笔 pendown()
新功能 :画圆
circle(半径) #画一个指定半径的圆
t.circle(50)
circle(半径,角度) # 画一个制定半径、角度的圆弧
circle(半径,角度,边数)#制定边数的话,那就是正多边形
其中半径和角度都可以是负数,看看是什么效果。
半径正数 不断左转,负数,不断右转
新功能:填充颜色
成组使用
设置填充颜色 fillcolor(颜色)
开始填充 begin_fill()
(中间绘制图形)
结束填充end_fill()
课堂练习1:
绘制一个三角警示牌
课堂练习2:
绘制一个太极图(双鱼图)
练习三
电源开关、禁止停车、三叶草 图钉
------------------------
# 3. 用海龟作图
t.pencolor('red')
t.fillcolor('green')
t.begin_fill()
for i in range(4):
t.end_fill()
-------------------------
三角警示牌
import turtle
t=turtle.Turtle()
t.pensize(10) #画笔粗细
t.fillcolor('yellow')
t.begin_fill()
for i in range(3):
t.end_fill()
t.penup()
t.goto(100,20)
t.pencolor('black')
t.pensize(2)
t.pendown()
t.fillcolor('black')
t.begin_fill()
t.circle(10)
t.end_fill()
t.begin_fill()
t.penup()
t.goto(88,120)
t.pendown()
t.setheading(90)
t.circle(-12,180)
t.goto(100,50)
t.goto(88,120)
t.end_fill()
t.hideturtle()
turtle.done()
====
同样的形状,可以用不同的代码来实现。
============lesson4 复杂图形的分解
抬笔
落笔
【绘制之前使用】
括号不能省略,pu() pd() 缩写
加快绘制速度
实例演示
画不连续的线段
forward()
penup()
forward()
pendown()
forward()
---------------
复杂图形的绘制:分解与重复
分解区域
识别边界
确定顺序
学习绘图:
1、救生圈(四种颜色)
2、类似海浪的复杂图形 彩色标志【要点,从何处开始】
练习1:红心【分解 正方形加两个半圆】
练习2:彩色风车
===========================
lesson5
重复操作:for循环语句
需要确定重复的一系列操作
以及
重复的次数
for i in range(3):
用循环语句的观点分解图形
正五边形
正六角星
循环可以嵌套
循环体可以是循环语句
双重循环、三重循环……
外层循环变量、外层循环次数
for i in range(4):
双重循环
作业1:用循环实现 正五边形 六角星 邮政编码框
===================
lesson6
循环变量、write函数、range函数、用变量来作变化的图
变量
for 循环语句中有一个成分“循环变量”是可以自由命令的
循环变量名不影响循环的次数
它的作用
新功能:write函数
write函数可以让海龟在画布上写字
for i in range(10):
t.write函数被执行了10次
每次循环,循环变量i都会变成不同的数值
range(10)就是一组连续的10个数
每次循环从这组数中按照顺序抽一个出来
range函数
range函数会给一个等差数列,有三种形式
range(n):从0 到n-1,一共n个整数 [0,n)
range(b,e):从b到e-1,一共e-b个整数
range(b,e,s)【s-step 步长】
尝试产生[5,6,7,8,9] 和[10,20,30,40,50]
我们可以用变量画出一些变化的图案
贝壳
write是个好东西,但是字号太小
write(v,move=,align=,font=)
for i in range(10,41,10):
t.goto(100,200)
t.write('Python艺术编程',font=('fantasy',20,'normal'))
t.goto(-300,200)
t.write('Python艺术编程',font=('sans',40,'normal'))
作业1:
21世纪的所有闰年
设计一个程序,打印出21世纪所有的闰年
【提示:从2000年开始,用range函数产生21世纪所有闰年】
import turtle as t
t.penup()
t.color('green')
a=0
c=250
t.goto(-250,c)
for i in range(2000,2100):
t.hideturtle()
t.done()
【range(2000,2100,4)】
作业 2:
绘制一个刻度尺
作业3:贝壳
作业4:走廊(大小不同的正方形)
作业5 蛋糕圈
=========================================================
陈老师的课小结:
第一节课:
入门课,了解什么是程序;程序的三种基本结构(顺序、重复、分情况。可以举生活中的例子:作息时间表、制作食品的流程表、唱歌歌词-重复-分情形)
了解python作为一门编程语言,它的基本形式,如空行、注释语句、缩进、大小写字母、英文标点符号等。通过让学生原原本本抄写代码体验python编程的基本流程。
第二节课:
海龟作图的基本指令:(LOGO语言,turtle 画线条的小海龟)
基本要素: 位置(坐标,X轴和Y轴,正负数,数值范围);方向(默认方向为正东方向,0°) ;运动(前进forward(像素)
后退backward(像素));转动(左转left(角度)右转(角度))
有了这个知识可以画什么形状呢?
from turtle import *
shape('turtle')
color('green')
speed(1)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
hideturtle()
done()
如何画一个三角形/五边形/六边形呢?
如何画一个五角星呢?
除了这些基本图形,你还可以画什么呢?
松树、钻石、房子图案??
前一篇:python-数学问题(1)