Learning Python Day01

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

import保留字,引入了一个绘图库名字叫:turtle(海龟库)

turtle库的使用

trutle的绘制窗体

单位是像素,一般简略的直接称数值

显示屏的左上角为坐标原点(0,0);

窗口的左上角是(startx,starty);

setup(w, h, x, y)函数

setup()设置窗体大小及位置

turtle.setup(width, height, startx, starty)

四个参数的后连两个是可选的(即可不填写默认在程序正中)

setup()函数并非是必须的,只有你需要控制其位置和大小时可写

turtle库的空间坐标体系

  • 绝对坐标

    整张画布的正中心坐标为(0,0)

    参考系是整张的画布

goto(x, y)函数

turtle.goto(x, y)-- 让所处任何位置的海龟到达指定坐标

#示例代码
turtle.goto(100, 100)
turtle.goto(100, -100)
turtle.goto(-100, -100)
turtle.goto(-100, 100)
turtle.goto(0, 0)
  • 海龟坐标

fd(d)函数

turtle.fd(d)-- 让海龟往前进方向移动

bk(d)函数

turtle.bk(d)-- 让海龟往后退方向移动

circle(r, angle)函数

trutle.circle(r, angle)-- 让海龟往当前位置左侧的某一个点为圆心曲线移动

trutle的角度坐标体系

  • 绝对角度

seth(angle)函数

turtle.seth(angle)-- 改变海龟行进的方向,但不行进

angle为绝对度数

示例:

turtle.seth(45)

turtle(-135)

  • 海龟角度

相对于海龟的角度偏向

 left(angle)函数

让海龟向左改变方向

right(angle)函数

让海龟向右改变方向

示例代码

#Z字形
import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)

RGB色彩体系

RGB色彩模式

有三种颜色构成万物色

  • RGB指红绿蓝三个通道的颜色组合

  • 覆盖视力所能感知的所有颜色

  • RGB每色取值范围0~255整数或0~1小数

常用RGB颜色

turtle库默认采用RGB的小数值来表示颜色

colormode(mode)函数

turtle.colormode(mode)

表示颜色默认采用小数值,可切换为整数值

  • 1.0:RGB小数值模式

  • 255:RGB整数值模式

trutle程序语法分析

库引用与import

形如

turtle.setup(650, 350, 200, 200)

<a>.<b>()的编码风格

  • 库引用

扩充Python程序功能的方式

使用import保留字完成

采用<a>.<b>(<函数参数>)的编码风格

#格式
import <库名>
<库名>.<函数名>(<函数参数>)

import的简化方法

使用fromimport保留字共同完成

#格式
form <库名> import <函数名>
#或
form <库名> 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的优化方法

使用importas保留字共同完成

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

画笔控制函数

海龟即是画笔,画笔控制即使控制海龟

画笔操作后一直有效,直到下次重新设置,一般成对出现

penup()函数

别名trutle.pu()

画笔抬起,海龟在飞行 -- 不在画布上留下图案

pendown()函数

画笔落下,海龟在爬行 -- 在画布上留下图案

pensize(width)函数

画笔宽度,海龟的腰围

别名trutle.width(width)

pencolor(color)函数

画笔颜色,海龟的涂装

color颜色字符串r,g,b

#color参数的三种形式,以**紫色**为例
trutle.pencolor("purple")           #颜色字符串
trutle.pencolor(0.63, 0.13, 0.94)   #RGB的小数值
trutle.pencolor((0.63, 0.13, 0.94)) #RGB的元组值

运动控制函数

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

forward(d)函数

向前行进,海龟走直线

d -- 行进距离,可以为负数,单位是像素

别名turtle.fd(d)

circle(r, extent)函数

根据半径r绘制extent角度的弧形

r -- 默认圆心在海龟左侧r 距离的位置

r为负数则圆心在右侧

extent -- 绘制角度,默认是360度的整圆(可选填)

方向控制函数

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

  • 绝对角度

 

setheading(angle)函数

别名turtle.seth(angle)

改变行进方向

angle为绝对度数

示例:

turtle.seth(45)

 

turtle(-135)

 

  • 海龟角度

相对于海龟的角度偏向

left(angle)函数

turtle.left(angle)

海龟向左转

right(angle)函数

turtle.right(angle)

海龟向右转

angle:在海龟当前行进方向上旋转的角度

注意点

方向控制函数只改变海龟行进的方向,并不能在实际绘图上让海龟移动,如有需要需与运动控制函数配合

循环语句与 range() 函数

循环

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

#格式
for <变量> in range (<参数>)
	<被循环执行的语句> 		#注意缩进

<参数>表示循环的次数

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

range()函数

产生循环计数序列

  • range (N)

产生0N-1的整数序列,共N

range(5) #0, 1, 2, 3, 4
  • range (N, M)

产生MN-1的整数序列,共N-M

range(2, 5) #2, 3, 4

down()函数

如果我们是一个文件式的描写方法,若以turtle.down()作为turtle绘制的最后一部分,那么程序运行之后不会退出,需要手动关闭窗体退出,去掉则程序自动退出

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Harry_zlh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值