2 Python基本图形绘制

2.1 深入理解Python语言

计算机技术的演进:

1946-1981 计算机系统结构时代(互联网&Windows操作系统诞生)-计算能力问题

1981-2008 网络和视窗时代(08年安卓诞生)-交互问题

2008-2016 复杂信息系统时代(17年alphago击败柯洁)-数据问题

2017+ 人工智能时代 -人类的问题

编程语言的多样初心:

C:重点指针、内存、数据类型,语言本质是理解计算机系统结构,用于解决性能问题,适合计算机类专业;

C++:重点对象、多态、继承,语言本质是理解主客体关系,用于解决大规模程序,适合计算机类专业;

Java:重点对象、跨平台、运行时间,语言本周是理解主客体关系,用于解决跨平台问题,适合软件类专业;

Visual Basic:重点对象、按钮、文本框,语言本质是理解交互逻辑,用于桌面应用开发,适用对象不确定;

Python:重点编程逻辑、第三方库,语言本质是理解问题求解,适合解决各类问题,适合所有专业;

不同编程语言所处的时期不同,初心和历史使命也不同;

Python特点:语言简洁 + 生态高产 ==> 效率10x

2.2 实例2:Python蟒蛇绘制

#PythonDraw.py

Import  turtlre

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.circlr (40, 80/2)

Turtle.fd (40)

Turtle.circle (16, 100)

Turtle.fd (40 * 2/3)

Turtle.done ( )

2.3 turtle库的使用

海龟库是turtle绘图体系的python实现,是python的标准库之一;

python计算生态 = 标准库(随解释器直接安装到操作系统的功能模块) + 第三方库(需要经过按照才能使用的功能模块)

库Library、包Package、模块Module,统称模块;

Turtle.setup(width,height,startx,starty)设置绘图窗体大小及位置,并不是必须的,四个参数中后两个可选;

空间坐标体系:绝对坐标(海龟一开始的位置)、海龟坐标(对于海龟视角而言的);

Turtle.goto(x,y)让海龟移动到某绝对坐标;

Turtle.bk(d)后退;

Turtle.fd(d)前进;

Turtle.circle(r,angle)以某点为圆心画曲线;

角度坐标体系:绝对角度(x轴正方向为0/360°,y轴正方向为90/-270°),海龟角度(还是相对海龟而言);

Turtle.seth(angle)只改变海龟方向但不前进,其中angle为绝对度数;

# turtle.seth(45)让海龟转到45°角方向上;

Turtle.left(angle)/Turtle.right(angle)让海龟向左/右侧旋转相应角度;

RGB色彩体系:红蓝绿三个通道的颜色组合,每色取值范围0-255整数或0-1小数;

white:255,255,255;

black:0,0,0;

默认采用小数值,可切换为整数值——turtle.colormode(mode)当mode=1.0使用RGB小数值模式,mode=255时为整数模式;

2.4 turtle程序语法元素分析

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

import更多用法(1)

使用from和import保留字共同完成 即 from<库名> import <函数名> 或 from<库名>import*,这样在使用函数时就不用重复使用库名;

更改后:

#PythonDraw.py

from  turtlre 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)

circlr (40, 80/2)

fd (40)

circle (16, 100)

fd (40 * 2/3)

done ( )

对于不省略库名的方法,所使用的函数是库中的函数,不会出现函数重名问题。而省略库名时,所使用的函数相当于是独立的,有可能会和用户自定义的某个函数重名,引起冲突;

import更多用法(2)

使用import和as保留字共同完成 即 import<库名> as <库别名>

<库别名> . <函数名>

可以给调用的外部库关联一个更短,更方便的名字;

更改后:

#PythonDraw.py

import  turtlre 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.circlr (40, 80/2)

T.fd (40)

T.circle (16, 100)

T.fd (40 * 2/3)

T.done ( )

既避免了代码量冗余,又不会出现函数重名问题;

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

Turtle.penup()别名turtle.pu()即抬起画笔,turtle.pendown()别名turtle.pd()即落下画笔;

Turtle.pensize(width)别名turtle.width(width)即设置画笔宽度;

Turtle.pencolor(color)设置画笔颜色,其中color可以写作颜色字符串 # “purple”,或RGB小数值 # 0.63,0.13,0.94  或RGB元组值 #(0.63,0.13,0.94);

turtle运动控制函数:控制海龟行进方向(直线&曲线);

使用turtle.circle(r,angle)时默认圆心在海龟左手边(海龟视角) r 距离的位置上;

turtle方向控制函数:

turtle.setheading(angle)别名turtle.seth(angle),将海龟朝向改为某一绝对角度;

Turtle.left(angle)和turtle.right(angle)是在海龟方向上旋转角度;

循环语句for in 结构:

For <变量> in range (<参数>):

<循环执行的语句>

其中 变量 表示每次循环的计数(0~次数-1),参数 表示循环次数;

# for i in range(5):

print(i)

得到

0

1

2

3

4

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容