Death is so final, whereas life is so full of possibilities。死了可什么都没了,而活着就有无限的可能。《权力的游戏》

往日回顾:来学Python啦,用Python详细讲解温度转换器

这次咱们开头先详细了解一下Python及其它编程语言,关于编程语言有很多,据说超过六百多种。可真正常用的也就那么几十种,毕竟谁更好用谁就更强大嘛,可谓说在编程界也有优胜劣汰的法则。

那么大家接触最多的可能就是C语言了。在C语言中,我们主要学习了它的指针和内存,作为底层语言,它最主要解决的问题是计算机系统的性能问题,也适合做计算机系统的底层程序开发。

话说C语言可能也是顺应时代,因为它刚好诞生在计算机系统时代。那么还有一种语言也是,Java诞生在网络和Windows时代,当时需要解决的是跨平台问题,而Java作为面向对象的高级语言,提出了用跨平台的方法去解决跨平台的问题,于是Java顺势便火了起来,也一直火到现在,在学Java时,我们通常会学到跨平台,对象,运行时等,主要也是为了解决跨平台问题。

说到了C语言,那么还有一个C++,它是在C的基础上发展演变过来的,它有面向对象的特点,又和底层语言C有着相似的地方,一般用来写大型软件的开发,小编在Pr中发现了C++,虽然不知道Pr的全部开发是否为C++,但是至少有C++的成分。在学习C++时我们大概会学对象,多态,继承等。

还有一类前端语言,上面所说的称为后端语言,前端语言包括HTML,CSS,JS等,精通前后端的我们称为全栈工程师。前端语言主要处理的是网页,小程序,网站建设等。

聊完这些语言后,我们来开始画“Python”咯

前有用Python实现温度转换,这有画图功能,感觉Python功能挺多的,不知道下次还会有什么好玩的

Python之所以能实现画图是因为具有超多的库(听说有超过13w+多的库),而这些库是能够被我们直接拿来用的,全球的开发者都为Python库的扩大做了许多贡献。

Python的库分为标准库和第三方库,标准库是随解释器安装到系统中的功能模块,而第三方库就得看自己需求独自进行安装了。而下面所说的库是Python的基本标准库。下面所说的库,以及以后会遇到的包,模块等,一般我们现在统称为模块。

下面我们先看一下它的源代码:

#PythonDraw.pyimport turtle as tt.setup(650,350,200,200)t.penup()t.fd(-250)t.pendown()t.pensize(25)t.pencolor("red")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()

今天我们来学习一下如何用Python的库来画图。

1

GO!

#PythonDraw.py

首先我们用了#这个符号来为此程序命名,而#后面的部分并不会写进程序的代码中,因为#和C语言中的//符号功能是一样的,叫注释功能。在#后面可以随便写,不过程序员一般都会用注释来解释程序代码,因为时间长了后可能会忘记部分代码是来干嘛的,毕竟大型程序的代码非常多。

2

第一行

import turtle as t

此行代码有个保留字(上篇Python可能说到了关键字,小编查了一下关键字和保留字的区别,发现还是有些不同的,所以纠正一下哈。保留字是在语言已经定义过的字,使用者不能把这些字作为变量名或过程名使用;而关键字是在语言中有特定含义的,成为语法中一部分的那些字。而它们的区别便是某些保留字并没有运用到当前的语法中,区别不大,大家知道就行)import,它引入了一个标准库turtle,没错,它就叫turtle(海龟)。

import的主要功能是引入一个模块,在这个程序中引入了一个模块:绘图库turtle,至于为什么叫海龟,小编也不知啊

在turtle后面还有一个as,这是用来干嘛的呢,如果我们没有写as,那么在此行以下的所有语句中t都要改成turtle,是不是感觉很麻烦,所以as的功能便是用t来代替turtle。

其实用import引入库最开始的编码风格是这样的,如下:

import.(函数参数)

import还有一些用法,比如用from和import两个保留字一起组合,那么在后面调用函数时便不需要写成.的形式。是不是要比上面的那种方法简单一点呢,不过这也是有缺点的,如果写的程序比较大,用到的函数比较多,那么就很有可能会造成重名的现象,使程序变得混杂。

fromimport   #或者fromimport*

上面两种都不太方便,第一种写得有点多,第二种容易重名,所以小编用了import++as+(自定义名称)的形式,这个自定义名称可以是自己随便起的,这样也会方便很多。

据说turtle库诞生的时间还蛮早,好像是1969年,它也是入门级的图形绘制函数库。如下图便是用turtle绘制出来的,相信你看完此文后能自己画出更好看的图片。

在turtle库中,我们可以了解turtle库的基本使用方法,如绘图的窗体布局,绘图的坐标系(有空间坐标体系和角度坐标体系),还有大家在买电脑遇到的RGB色域。那么RGB是啥呢,今天我们来简单认识一下它。

RGB由三种基础色(红,蓝,绿)组合构成了万物色,在RGB色彩模式中,RGB每色取值范围为0~255或者0~1之间的小数,那么我们怎么用它呢,在turtle中提供了turtle.colormode(mode)来设置模式,如turtle.colormode(1.0)则表示用的是RGB的小数值模式,用turtle.colormode(255)表示使用的是RGB的整数值模式。下面给出了一些基本的颜色数值,还有更多的颜色RGB数值就得靠小伙伴自己去搜索咯。

在我们在开始讲turtle库的更多函数时,我们先来个简单分类,turtle程序语法元素有:

turtle画笔控制函数;

turtle运动控制函数;

turtle方向控制函数等,因为这个程序大概就讲的这几类控制函数,程序中还有其它的关于循环的语句。

3

第二行

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

在用turtle写的代码中,运行后我们会看到一个窗体,它是turtle的一个画布空间,在这个空间中我们使用的最小单位为像素,既然有空间,那么我们就会有坐标来规范它。在我们电脑的屏幕中,最左上角的位置便是(0,0),在画布空间中亦是如此。如果我们自己不设置窗口的位置,那么它会自动默认为在电脑屏幕中间的位置。

在turtle库中,有turtle.setup函数来控制窗口的位置以及窗口的大小。它的基本形式为turtle.setup(width,height,startx,starty),前两个为宽度和高度,以及窗口的x,y坐标,x和y可以不填,系统会默认为在电脑屏幕中间位置。其实setup并不是绘图必须要有的,只有当我们需要控制窗口的大小和位置时才会拿出来。

所以上面语句我们可以理解为在电脑屏幕中生成一个宽度为650像素,高是350像素,窗体的左上角在电脑屏幕中(200,200)的位置。

在画布窗口这个窗口中,它也是有坐标来规范的,在这个窗口的坐标体系中,有绝对坐标和海龟坐标两种。在绝对坐标中,海龟在窗口的正中心,那么正中心的坐标就为(0,0),海龟的头向着窗口的右侧。如图:

那么海龟怎样运动呢?运动又怎么用代码表示呢?turtle提供了一个函数为turtle.goto(x,y)。如图小编做了一个例子,下图中划有圈圈的地方为坐标原点(0,0),我们可以看到海龟(实际上看到的是个点)从中心位置出发,顺着箭头到达最终指向的坐标。

那么海龟运动的方向又是咋样的呢?我们在下图可以看到海龟的运动方向。那么海龟的运动有木有函数可用呢,当然是有的啦,比如海龟向正前方运行就有turtle.forward(d),别名为turtle.fd,向反方向就有turtle.bk(d),还有一个稍微复杂一点的函数表示海龟的运动方向,叫 turtle.circle(r,angle),它表示的是以左侧的某一点为圆心,进行曲线运动,上面的正反方向均为直线运动。

前面说到有空间坐标系和角度坐标系两种,了解了空间坐标系,那么我们来康康角度坐标系把(如下图)。在角度坐标系中,x轴正方向表示0°和360°,y轴正方向表示90°和-270°,这样的一个坐标体系我们称之为绝对坐标。

恰好前面说到有海龟运动方向,那么在角度坐标系中我们该如何改变海龟的行进方向呢,turtle提供了一个turtle.seth(angle)函数来改变海龟的行进方向,我们也看到括号内只有angle一个参数,所以它只改变行进方向,并不会改变运动距离。

在海龟运动的角度坐标体系中,还有其它的函数来表示海龟的运动角度,如:turtle.left(angle)表示让当前的海龟向左,turtle.right(angle)表示让当前的海龟向右。

前面说了这么多函数,其实把程序中的有些语句已经包含了,那么我们现在以代码块的形式来为大家讲解。

4

画笔控制函数

t.penup()###t.fd(-250)t.pendown()t.pensize(25)t.pencolor("red")

接下来我们以语法元素为模块来为大家讲解,上面的语句(忽略第二行,它不是画笔控制函数)。在除开第二行的这四句语句中,我们可以发现它们都有个共同点,那就是前面都有个pen(笔)。在画笔控制函数中,一般penup和pendown是成对出现,既然画笔能up(在上面飞),那么肯定也会有down(掉下来的时候呀)。turtle.penup和turtle.down也有别名叫turtle.pu和turtle.pd,也就是英文首字母的缩写 。

那么pensize又是用来干嘛的呢,从英文我们也容易看出是和大小有关的,没错,它就是用来控制画笔宽度的,别名为turtle.width。在此程序中,我们将画笔的大小设置为25,程序运行后根据图像来看还是有点大的。

pencolor也容易看出是与颜色相关的,我们这里用的是颜色字符串(切记颜色字符串必须是小写哦)来为海龟(画笔)涂上一层颜色,还可以用前面讲到的RGB的小数值来表示,如:t.pencolor(0.63,0.13,0.94),甚至还可以直接将这些小数打包为一个元组值,直接放入pencolor函数中,如t.pencolor((0.63,0.13,0.94))。

5

运动控制函数

t.fd(-250)

这句可理解为海龟倒退行进250个像素。

t.circle(40,80)

控制运动函数在讲解第二行代码时已经讲了一些,这里再补充一下。前面有说到turtle.circle(r,angle)函数,还有一种写法是turtle.circle(r,extent=None),意思是根据半径为r绘制extent角度的弧形。

一般默认为圆心在海龟的左侧,但如果是负数,那么圆心便在海龟的右侧,如图为程序实例:

6

方向控制函数

t.seth(-40)

这个函数前面也讲到了,不过我们还是来复习一下,turtle提供了一个turtle.setheading(angle)函数来改变海龟的行进方向,在括号内只有angle一个参数,所以它只改变行进方向,并不会改变运动距离。turtle.setheading(angle)函数的别名便是turtle.seth(angle)。

方向控制函数还有用来表示海龟的运动角度,如:turtle.left(angle)表示让当前的海龟向左,turtle.right(angle)表示让当前的海龟向右。

7

循环语句

for i in range(4):#i从0开始计数
        t.circle(40,80)        t.circle(-40,80)

最后我们来讲解一下循环语句和range函数。循环语句我们用到的是for...in结构(可认为一个固定搭配),其中还包含有一个range函数。循环语句的基本结构为:

forrange(参数)#参数为循环的次数,若次数固定,则循环次数为0~(次数-1)        循环执行语句

下面演示一个简单程序实例:

那么range函数在里面起什么作用呢,它的作用是产生循环序列计数。range包含两种使用方法,第一种是range(N),用来产生0~N-1个整数序列;还有一种相差不大,为range(M,N),用来产生从M到N-1个整数序列,共N-M个。

8

运行程序

t.done()

这里最后还有一句语句,它的作用是不让窗口关闭,若没有此语句,那么窗口在完成绘制“Python”后便会自动关闭。

下图表示“Python”绘制成功啦。

是不是看起来不怎么像,其实也还好啦

最后想说的是,大家一定要把英语学好,这个程序中许多函数的名称和英文有很大关系,英语会,程序理解起来也更方便。

最后的话:不知道Python认真学起来需要多久,既然开始学了,那就要好好学下去。

往期推荐:

来学Python啦,用Python详细讲解温度转换器

2020-05-18

人生苦短,我用Python之小游戏

2020-02-17

初遇python

2020-02-15

公众号:程序员Bob

一个正在学习C语言的人,致力于将所学内容讲得更透彻!

点赞关注~谢谢你~

长按下图二维码关注,和你一起领悟程序员的魅力。

点“在看”你懂得

python turtle绕原点旋转_用Python也能画图?用Python来画个“python”相关推荐

  1. python turtle绕原点旋转_分享给大家几段有趣的代码,学会python画画可以不用自己动手啦...

    前言 Python 是一门简单易学且功能强大的编程语言,无需繁琐的配置,掌握基本语法,了解基本库函数,就可以通过调用海量的现有工具包编写自己的程序,轻松实现批量自动化操作,可以极大提高办公和学习效率. ...

  2. python turtle绕原点旋转_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

  3. python turtle绕原点旋转_「加德老师与小朋友们的编程之旅」Python海龟作图(上)

    加德老师寄语: 小朋友们,家长朋友们,大家好! [加德老师与小朋友们的编程之旅]今天迎来第二节课--用python进行海龟作图(上) Python被誉为现今人工智能第一语言,适合9岁以上孩子进行编程入 ...

  4. python turtle绕原点旋转_python习题

    python习题 第一章习题测试 1[单选题] Python语言是由哪个人创造的?(      ) A.Dennis Ritchie B.Linus Benedict Torvalds C.Guido ...

  5. python turtle绕原点旋转_Python基本图形绘制

    turtle库的使用 turtle库概述 turtle(海龟)库是turtle绘图体系的Python体现 标准库之一 入门级绘图函数库 标准库:随解释器直接安装到操作系统中的功能模块 第三方库:通过安 ...

  6. python turtle绕原点旋转_Python教程小小turtle绘图教学 (二)

    对于一开始学习Python的同学来说,强烈给大家安利Python中的turtle库!原因有三:直观 有趣 易上手通过Python的turtle库,你可以很容易的使用循环,判断以及自定义函数等基础的编程 ...

  7. matlab控制三角形绕原点旋转任意角度

    项目中遇到一个问题,需要把正三角形绕原点旋转任意角度,平时操作图片的时候,顺便旋转,感觉好像很简单,但是自己去做的时候还是有些困难. 我觉得旋转的难点在于由原始点计算新的目标点上,因为你需要考虑点位于 ...

  8. python编程对电脑要求_什么是集成开发环境和代码编辑器?优秀Python编程环境的要求(4)...

    科学家将甚大望远镜和斯皮策空间望远镜的数据进行能量分布分析,发现了在西北向旋臂末端存在一些年轻恒星,越往星系中央,恒星的年龄越大.最新版本的komodo提供了更多的功能与pycharm.pydev和w ...

  9. 怎么把python解释器配置在pycharm中_在PyCharm中配置项目(三):配置Python解释器...

    PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具.此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发. PyCha ...

最新文章

  1. html5 上传超大文件,HTML5教程 如何拖拽上传大文件
  2. springboot + elasticsearch
  3. UVA 10129 Play on Words(欧拉道路)
  4. X/Open DTP模型与XA协议的学习笔记
  5. 【推荐系统】深入理解推荐系统:排序
  6. 树莓派也跑Docker和.NET Core
  7. Android系统启动系列----init进程
  8. python 怎么将数组转为列表_怎么将视频转为GIF动态图 表情包怎么制作
  9. 开发者强势围观!Gartner 发布 2020 年十大战略科技发展趋势
  10. PKD-Bert:基于多层网络的Bert知识蒸馏
  11. 微服务/分布式面试题与基础知识总结汇总
  12. 马氏距离(Mahalanobis Distance)与欧式距离
  13. ligerui demo php,ligerui grid行编辑示例
  14. 阿里云ECS服务器配置全攻略
  15. OSA品牌服饰旗舰店,淘宝商城一颗…
  16. Android 实战之模拟微信首页界面 (java实现)
  17. 哪个邮箱好用又安全?最安全的邮箱排名是?
  18. android 微信广播,目录 | 微信开放文档
  19. 数据库中的聚簇索引和非聚簇索引
  20. 【R语言数据科学】:(十)数据清洗之日期型数据处理

热门文章

  1. linux文件编程 打开 创建 写入
  2. 如何解释召回率与精确率?
  3. ArcGIS10.2 因空间索引导致数据编辑保存速度慢问题
  4. 第一讲 《javascript 浏览器发展历史》
  5. iptable 链表
  6. 仿苹果Assistive Touch
  7. Windows10环境gradle安装与配置
  8. 笔记本通过网线共享网络
  9. linux开启多个matlab_Matlab并行编程方法
  10. Unity 之 ToLua框架中UI.Dropdown组件动态添加Options