点击上方“科技学堂”订阅最新科技教育信息

循环是计算机程序中最基础的控制方法,在Python学习中,熟练使用循环语句是非常重要的。“Python轻松学”课程我们展示了用循环语句生成从1数到100的方法,“Python-Turtle图形编程入门”课程我们学习了用循环语句生成奥运五环和棋盘格子的方法。

在“Python-Turtle图形编程入门”课程中,我们已经可以绘制图形了。除了像turtle这种第三方的扩展包,我们怎么只用Python自身功能绘制图形?接下来我们就用在“Python轻松学”中学过的一个知识点循环来完成图形的绘制,让你看到一个不一样的循环。本次案例IDE为eclipse,输出为eclipse的控制台。

案例1:打印三角形

这里我们使用键盘上的”*”号来实现三角形的绘制,通过一些算法,我们可以让*组成一个三角形的图案,那么代码如何实现呢?

其实代码跟“Python轻松学”课程中学习到的代码并没有什么区别,也没有新的内容,我们只是通过2个for循环的嵌套来实现对三角形图形的控制。在代码注释的地方,标注了每一个循环的作用,通过这种简单的控制算法,我们就能使用Python原生的代码来绘制图形了。这也算是循环的进阶用法—算法控制。

画出来了等腰直角三角形,接下来我们将难度提升一下,打印一个菱形:

案例2:打印空心菱形:

是不是有点复杂?其实也不难。我们只需要将这个图形拆开就会发现一个菱形是有2个等腰三角形组成的,这2个等腰三角形共用一个底边:

那么我们在写代码的时候也可以分开来写,先画出上面的等腰三角形,然后将代码中的算法整个反转,下面的等腰三角形就出来了:

这里的代码要比刚才化直角三角形要复杂了,因为多了一个循环,大家观察一下,多出来的这个循环的作用是什么呢?

仔细观察,第一个直角三角形其实是一个实心的三角形,而这个菱形是一个空心的。所以,多出来的循环的作用大家应该知道是干嘛用了,它的功能是就是遍历每一个格,然后控制是否是空心的。

半个菱形画出来了,那么下面的部分是不是也简单了呢?只要将算法反转就可以了:

需要注意的是算法反转不光是逻辑层面的,循环的条件的部分也需要调整哦。

这样菱形就画出来了,是不是也不难?只要把循环部分的算法弄明白了画图还是很容易的事。既然画出来了菱形,那么在这给大家一个小任务,将刚才的菱形的图案,倒过来,变成这样:

同样的还是跟刚才一样,将菱形切割 变成2个三角形然后分别画出来就好了。想一想,你会怎样用程序画出图形呢?

通过案例我们可以看到,循环的作用不仅仅是简单的从1数到100 。还可以在数数的过程中,配合其他的代码来达到不同的执行结果。那么除了循环以外,还有那些程序中的技能有我们所不知道的功能呢?答案将在下期揭晓~。

如果你对Python学习有兴趣,别忘了点下面小程序报名学习课程哦

  • 借助Python turtle,了解计算机绘图的坐标系

  • 为什么说Python是人工智能的第一语言

科技学堂

科技辅导员在线学习平台

微信号:sciclass

python 画图 线标注_Python画图的这几种方法,你学会了吗相关推荐

  1. python安装gdal包_python安装gdal的两种方法

    1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件  链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_am ...

  2. python包导入方式_python导包的几种方法(自定义包的生成以及导入详解)

    python 导入数据包的几种方法 1.直接导入整个数据包:improt 数据包 2.导入数据包中的某一个函数: from 数据包 improt 函数(当函数这一项为 * 时为导入整个数据包) 3. ...

  3. python字符串成熟编码_python字符串转公式两种方法获取网页编码python版

    在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...

  4. python如何删除代码_Python列表删除的三种方法代码分享

    1.使用del语句删除元素 >>> i1 = ["a",'b','c','d'] >>> del i1[0] >>> prin ...

  5. python里的拼接_Python拼接字符串的7种方法总结

    前言 忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 在Python中,我们经常会遇到字符串的拼接问题,几乎任何一种编程语言,都把字符串列为最基 ...

  6. python怎么复制字符串_python字符串复制的几种方法

    >>> list1 = [1,2] >>> id(list1) 50081032 >>> list2 = list1.copy() >> ...

  7. python求素数积_python求质数的3种方法

    本文为大家分享了多种方法求质数python实现代码,供大家参考,具体内容如下 题目要求是求所有小于n的质数的个数. 求质数方法1: 穷举法: 根据定义循环判断该数除以比他小的每个自然数(大于1),如果 ...

  8. python解复杂方程_Python 解方程的三种方法

    # 首发于我的博客 The North. 新年第一篇,搞起. 这回写一个好久之前想做,一直搁着没做的东西-- Python 解方程(其实是放假回家,趁着家里电脑重装 LOL 的时间过来写一篇). 咱这 ...

  9. python 发邮件 抄送_Python发送email的3种方法

    python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送 ...

最新文章

  1. python_day2基本数据类型
  2. Java集合总结【面试题+脑图】,将知识点一网打尽!
  3. hbuilder前端需要的插件_最新web前端学习路线
  4. hadoop关闭安全模式
  5. 【编程】char unsigned int float double long 字节数
  6. 回溯法之避免无用判断 UVA129 Krypton Factor困难的串
  7. bower overrides 配置
  8. LeetCode 1418. 点菜展示表(哈希map)
  9. MAC下安装与配置MySQL [转]
  10. linux 重复模式元字符,Linux 正则表达式 vi, grep, sed, awk
  11. Cocos2d-xJson数据解析(读取和写入)
  12. 合影效果java_6个姿势,教你拍好合影
  13. excel填充序列_excel填充序列不见了怎么办-excel
  14. 4.1 c++左值和右值、类型转换
  15. Matlab命令行乱码问题
  16. MySQL数据类型之数值型
  17. mysql 视图调用存储过程_MySQL视图、存储过程
  18. 备份Linux系统(通用)
  19. 软件包pdftex.def错误:找不到文件`./filename-eps-converted-to.pdf‘
  20. 如何巧妙的申请换部门_换部门申请书

热门文章

  1. 使用EditPlus 删除文本文件中多余的空行 和 EditPlus 选择列
  2. 在xcode4中使用cocos2d 2.x很顺利的
  3. 《 郝斌 java自学视频 完结 》_《[郝斌]Java自学视频[完结]》AVI[压缩包]
  4. 1.2 什么是神经网络-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
  5. 玩转Mixly – 5、Arduino AVR编程 之 逻辑
  6. jtag和swd的区别
  7. android:persistent属性
  8. 【PC工具】chrome浏览器插件vimium:传说上网可以不用鼠标。VIM入门工具,妈妈再也不用担心我学不会vim了...
  9. STM32的ISP升级详解
  10. 【Connection Events】【BLE】【原创】