在日常工作和生活中,我们经常会遇到一件事情要重复做很多次的这种情况发生。在编程中,我们也会遇到这种情况,循环这种机制,就是专门用来处理这种需要不断重复做的事情的方法。通过几分钟的阅读,你将会掌握这种机制和编程手法。

循环就是一件事情重复做

首先我们来看一下一个编程例子,现在我们要使用Python中的海龟库来画几个圆(如果你不了解海龟库可以关注我查看之前的文章哦,有详细的入门介绍)

首先我们看一下代码

代码中我们反复运行了4次同样的代码

代码运行完成后一共画了4个圆

在上面的代码中,其中t.circle(100)和t.left(90)这两行代码,我们一共运行了4次,这其实就是反复做的事。

总结:要使用循环时第一件事情是要明确到底什么事情是需要循环做的。

明确了第一件事情,下面我们继续。现在我们的目标是画4个圆,也就是说我们需要循环4次,这个就非常好理解了,第二件事情就是明确我们要循环的次数,这里是4.

循环4次,在Python这个编程语言中,我们有很多种表达方式。在正式写循环前,我们首先来简单说一下在Python中循环的基本语法

for 循环的条件判断,当条件判断失败时就跳出循环,不再执行了:
循环体,也就是要循环做什么事情

循环执行的基本流程就是,第一步要判断for后边的条件,如果条件成立,那么执行循环体,如果条件不成立,那么跳出循环

下面我们来看一下针对循环4次具体该怎么处理。

第一种处理方式:

下面#符号后边的代表是注释,也就是解释说明,不是运行代码中的一部分

i = 1 #声明一个变量,用来记录次数,初始值设置为1
for i < 5: #判断i的值是否小于5
t.circle(100)
t.left(90)
# 上面这两行是要循环做的事情
i = i + 1 # 每循环一次把i的值加1,作为次数的记录

第二种处理方式:

这里我们使用到一个函数,也就是一个系统为我们提供的工具,它就是range

首先我们来看一下效果,在你的编辑器里输入range(4),看一下运行结果

这是我的运行结果

这个结果的意思是,一共包含4个值,他们的值分别是0,1,2,3这里不包含4,我们可以使用数组类型来进一步证明,如果你是刚刚接触编程,不太了解什么是数组,可以不用纠结,只记住range(4)代表着有一组数字,他们分别是0,1,2,3就可以了。如果是range(5),那么就代表着有一组数,他们分别是0,1,2,3,4 不包括5

将range(4)的运行结果,转换成数组类型

看起来第二种方式更加的简单和高端一点点,下面我们使用第二种方式来对上面的代码重新处理一下

重构的代码

运行后的结果

结果跟我们之前运行的一样。注意这里有一个写法for i in range(4),这句代码的意思就是i在range(4)的结果里,依次把range(4)里的结果的值赋值给i,直到range(4)的每一个结果值都会被取到。也就是i会分别取值0、1、2、3,这也就是程序员口中所说的迭代的意思。

循环我们已经学会了,下面我们来画一个比较漂亮的彩虹圈吧

循环100次

这一段代码,我们设置了循环次数为100次,并且把背景修改成为了黑色,运用红黄蓝三种颜色进行画图

代码运行的结果

画出来的图还有一点意思吧。

这个文章讲述了Python编程语言中for循环的使用,还有另外一种循环,叫做while循环,加关注哦,后续再来讲解。马上收藏并写起来你的代码吧。每天一个知识点,带你领略编程的魅力。

大话编程:非常有趣的循环(Python语言可视化海龟画图演示)的更多相关文章

  1. Python语言编程基础

    Python 技能目标 理解编程基本原理和思想 掌握python语言的基础语法 能够使用python进行基本的开发工作 熟练使用项目开发IDE:eclipse,PyDev 能够使用Python开发简单 ...

  2. 【转】布同:如何循序渐进学习Python语言

    大家都知道Python语言是一种新兴的编程语言.1989年,Python就由Guido van Rossum发明.Python一直发展态势很好. 原因有几点:1.跨平台性好.Linux.Windows ...

  3. python学习: 如何循序渐进学习Python语言

    大家都知道Python语言是一种新兴的编程语言.1989年,Python就由Guido van Rossum发明.Python一直发展态势很好. 原因有几点:1.跨平台性好.Linux.Windows ...

  4. 教孩子学编程 python语言版PDF高清完整版免费下载|百度云盘|Python入门

    百度云盘:教孩子学编程 python语言版PDF高清完整版免费下载 提取码:mnma 内容简介 本书属于no starch的经典系列之一,英文版在美国受到读者欢迎.本书全彩印刷,寓教于乐,易于学习:读 ...

  5. 9 本免费的 Python 语言编程书籍(转载)

    9 本免费的 Python 语言编程书籍 原文地址:http://linuxtoy.org/archives/9-free-python-books.html 2010-03-03 Toy Poste ...

  6. 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

    运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...

  7. 转:Python语言编程学习资料(电子书+视频教程)下载汇总

    开发工具: Python语言集成开发环境 Wingware WingIDE Professional v3.2.12 Python语言集成开发环境 Wingware WingIDE Professio ...

  8. 用10分钟,搭建图像处理编程环境,0失败!(python语言,windows系统)

    以前,你可能看过很多的文章,开始搭建一个图像处理的编程环境. 结果,按照教程一步一步做的时候,总是出现各种各样的问题. 就算成功了,后续开发过程中要用到不同版本的opencv,不同版本python,更 ...

  9. Python语言程序设计之一--for循环中累加变量是否要清零

    最近学到了Pyhton中循环这一章.之前也断断续续学过,但都只是到了函数这一章就停下来了,写过的代码虽然保存了下来,但是当时的思路和总结都没有记录下来,很可惜.这次我开通了博客,就是要把这些珍贵的学习 ...

随机推荐

  1. [HNOI2007]分裂游戏 SG打表博弈

    结论:其实每一个巧克力都是一堆石子 它的石子数就是它到队尾的距离 打一个SG表即可 #include<bits/stdc++.h> using namespace std; typedef ...

  2. MySQL常见水平分表技术方案

    根据经验,Mysql表数据一般达到百万级别,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉:水平分表能够很大程度较少这些压力. 1.按时间分表 这种分表方式有一定的局限性,当数据有较强的实效 ...

  3. lvs+keepalived做高可用方案1

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

  4. 002_FreeRTOS临界段代码

    (一)临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段 (二)FreeRTOS 与 临 界 段 代 码 保 护 有 关 的 函 数 有 4 个,两个是任务级的临界段代码保护,两个是中断 ...

  5. 001_C#我的第一个串口上位机软件

    (一)首先感谢杜洋工作室 < 入门 C#设计 >带来的视频教学 (二)本次设计从会单片机但是又不会上位机又想搞简单上位机的人群角度提供教程 (三)本次教程的目的是制作普通的串口软件,从而实 ...

  6. oracle数据库GROUP BY 子句

    1.GROUP BY子句 在SELECT 列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中. 如下: SELECT deptno,AVG(sal) from emp GROUP BY ...

  7. 数据结构实验之二叉树五:层序遍历 (SDUT 3344)

    #include <bits/stdc++.h> using namespace std; struct node { char data; struct node *lc, *rc; } ...

  8. 1625: 【例 1】反素数 Antiprime

    1625: [例 1]反素数 Antiprime [题目描述] 原题来自:POI 2001 如果一个大于等于 1 的正整数 n,满足所有小于 n 且大于等于 1 的所有正整数的约数个数都小于 n 的约 ...

  9. MySQL优化:如何避免回表查询?什么是索引覆盖? (转)

    数据库表结构: create table user ( id int primary key, name varchar(20), sex varchar(5), index(name) )engin ...

  10. strom部署问题

    1.storm 引用的 kafka和线上的kafka版本不一致 2.bolt的prepare初始化elasticsearch连接慢,导致第一次处理数据是总是有问题storm调用prepare方法是异步 ...