[ while 循环 ]

如果要计算1+2+3,我们可以直接写表达式:

  1. >>> 1 + 2 + 3

要计算1+2+3+...+10,勉强也能写出来。

但是,要计算1+2+3+...+10000,直接写表达式就不可能了。

为了让计算机能计算成千上万次的重复运算,就需要循环语句。

  1. # while循环结构
  2. while 判断条件: # 只有条件不成立时退出循环,如果条件为真,则循环就没有停止的时候,成为一个死循环
  3. 执行语句……

输出1到10的所有整数:

  1. num = 1
  2. while num <11:
  3. print(num)
  4. num = num +1

如果现在我们要当数字为5的时候结束循环,可以使用break语句!

break语句会终端当前循环。

  1. num = 1
  2. while num <11:
  3. print("当前数字是",num)
  4. if num == 5 :
  5. break
  6. num = num +1
  7. print("现在数字变成了:",num)

break的作用: 结束循环,在死循环中,也可以通过设置一定的条件来结束循环。

要求输出1-100之间的所有奇数,可以通过continue语句来实现。

  1. # 输出1-100之间所有奇数
  2. num = 0
  3. while num<100:
  4. num = num + 1
  5. if num%2 ==0:
  6. continue
  7. print(num)

while循环中的else:

  1. # while循环结构
  2. while 判断条件:
  3. 执行语句……
  4. else:
  5. 执行语句……

while循环中的else语句比较特殊,这里的else语句,只有在循环正常结束的时候才会执行,意思就是说如果我们的while循环在执行过程中中断了,即执行了break语句,这里的else语句就不会被执行。

  1. # 循环没有被中断
  1. num = 0
  2. while num<10:
  3. num = num + 1
  4. if num%2 ==0:
  5. continue
  6. print(num)
  7. else:
  8. print("else-----")
  9. ### 循环被中断
  10. num = 0
  11. while num<10:
  12. num = num + 1
  13. if num%2 ==0:
  14. break
  15. print(num)
  16. else:
  17. print("else-----")

优化上篇的猜年龄程序:之前的程序每执行一次,用户就输入一次数字,程序就会判断一个结果,之后程序就结束了。然而这样并不好,程序应该一直让用户输入数字,直到用户输入的数字正确。

  1. init_num = 12
  2. num = int(input("Enter:"))
  3. while init_num != num:
  4. if num > init_num:
  5. print("数字过大")
  6. else:
  7. print("数字过小")
  8. num = int(input("Enter:"))
  9. print("猜对了")
  10.  
  11. 嵌套循环:循环套循环
  12.  
  13. num1 = 0
  14. while num1 <3:
  15. print(num1,end="++" )
  16. num1 += 1
  17. num2 = 0
  18. while num2<3:
  19. print(num2,end="")
  20. num2 +=1
  21. print()
  1. 练习:

1. 输出九九乘法表

  1. first = 1
  2. while first<=9:
  3. sec = 1
  4. while sec <= first:
  5. print( str(sec)+"*"+ str(first) +"="+str(sec * first), end="\t")
  6. sec += 1
  7. print()
  8. first += 1

2. 使用 # 号 输出一个长方形,用户可以指定宽和高,如果长为3 ,高为4 ,则输出一个 横着有3个#号 竖着有4个#号的长方形。

  1. height = int(input("Height:")) # 用户输入一个高度 4
  2. width = int(input("width:")) # 用户输入一个宽度 3
  3. num_height = 1
  4. while num_height <=height:
  5. num_width = 1
  6. while num_width <= width:
  7. print("#", end="")
  8. num_width += 1
  9. print()
  10. num_height += 1

*******************************************************************************************************************************************************************************************************

[ 序列 ]

Sequence是Python的一种内置类型(built-in type),内置类型就是构建在Python Interpreter里面的类型。

Python的数据访问模型:直接存取 ,序列 ,映射。

对非容器类都可以直接存取,所有的数值类型归为此类。

序列类型 是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素。 字符串列表元组归到此类

映射类型和序列类型不同之处,它使用的索引和顺序的数字偏移量不同,它的元素无序存放,通过唯一的key来访问。 字典就是这种类型。

以后会学习的字符串(strings),列表(lists),元组(tuples),我们可以统称为序列。

序列有着相同的访问模式:它的每一个元素都可以通过指定一个偏移量的方式得到,而要想一次得到多个元素,我们可以使用切片,下表偏移量从0开始,总元素数减1结束。

简单来讲,序列就是按照一定的顺序排列起来的一系列元素,每个元素不是在其他元素之前,就是在其他元素之后。

在介绍for循环之前,先来学习range(范围)语句。

  1. # rang()的用法:
  2.  
  3. range(stop)
  4. #stop为结束位置,列出从0到stop之前的所有整数
  5. range(start, stop[, step])
  6. #列出从start开始,到stop之前所有的数字
  7. range(start, stop[, step])
  8. #start表示起始数字,stop表示结束数字,step表示每两个相邻数字之间的差,也叫步长

实例:

  1. #python range函数使用方法
  2. #函数内只有一个参数,则表示会产生从0开始计数的整数列表:
  3. range()
  4. >>> range(4)
  5. [0, 1, 2, 3] #python 返回值
  6.  
  7. #python range中,当传入两个参数时,则将第一个参数做为起始位,第二个参数为结束位
  8. >>> range(0,5)
  9. [0, 1, 2, 3, 4]
  10.  
  11. #range()函数内可以填入三个参数,第三个参数是步进值(步进值默认为1)
  12. >>> range(0,10,3)
  13. [0, 3, 6, 9]
  14.  
  15. #range函数的参数和结果也并非一定要是正数或是递增的,好比下面两个例子:
  16. >>> range(-4,4)
  17. [-4, -3, -2, -1, 0, 1, 2, 3]
  18. >>> range(4,-4,-1)
  19. [4, 3, 2, 1, 0, -1, -2, -3]

[ for 循环 ]

for循环 也被称作流程控制语句,常被用来遍历输出指定对象内部的多个元素,比如遍历字符串,列表,元祖,字典等(这些数据类型后边会学习)。

流程图:

基本语法结构为:

  1. # for循环结构一
  2. for var in sequence:
  3. statements(s)
  4.  
  5. # for 循环示例
  6. for i in range(10):
  7. print(i)

实例:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3.  
  4. for letter in 'Python': # 第一个实例:循环遍历一个字符串
  5. print('当前字母 :', letter)
  6. # 第二个实例:循环遍历一个列表 [列表的知识,之前还没学习,这里先强记:一个列表就是一个有序的集合,它内部的每个元素都有对应的一个索引下标数字,可以通过该数字找到相应的元素,并且这个索引下标也是有先后顺序的。
  7. fruits = ['banana', 'apple', 'mango']
  8. for fruit in fruits:
  9. print('当前字母 :', fruit)
  10.  
  11. print ("Good bye!")

结合上边提到的range()语句,我们练习一下:通过序列索引循环迭代。即:通过遍历索引的方式,执行循环。

在练习之前,先回想一下之前学习过的一个Python内置函数:range(),这里我们介绍另外一个Python内置函数:len() ,它的功能是计算列表的长度,即:包含元素的个数。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # 在没有学习for循环之前,我们如果要通过索引下标取出对应的水果名,会这样操作
  4.  
  5. fruits = ['banana', 'apple', 'mango']
  6.  
  7. print('当前水果 :', fruits[0])
  8. print('当前水果 :', fruits[1])
  9. print('当前水果 :', fruits[2])
  10.  
  11. print "Good bye!"

现在我们用for循环语句来实现:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3.  
  4. fruits = ['banana', 'apple', 'mango']
  5. for index in range(len(fruits)):
  6. print('当前水果 :', fruits[index])
  7.  
  8. print ("Good bye!")

输出结果:

  1. 当前水果 : banana
  2. 当前水果 : apple
  3. 当前水果 : mango
  4. Good bye!

for  循环中的else语句:

在 python 中,for … else 表示:for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,这里和while … else 是一样的。另外,跟while循环一样,在for循环中也可以使用break和continue语句,两者效果一样。

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @Author : Jesson
  4.  
  5. for num in range(10,20): # 迭代 10 到 20 之间的数字
  6. for i in range(2,num): # 根据因子迭代
  7. if num%i == 0: # 确定第一个因子 如果能被2整除,就是质数
  8. j=num/i # 计算第二个因子
  9. print('%d = %d * %d' %(num,i,j)) # 格式化输出
  10. break # 跳出当前循环
  11. else: # 循环的 else 部分
  12. print(num,'是一个质数')

输出结果:

  1. 10 = 2 * 5
  2. 11 是一个质数
  3. 12 = 2 * 6
  4. 13 是一个质数
  5. 14 = 2 * 7
  6. 15 = 3 * 5
  7. 16 = 2 * 8
  8. 17 是一个质数
  9. 18 = 2 * 9
  10. 19 是一个质数

Python基础2:流程控制语句 while / for循环的更多相关文章

  1. python基础(二) —— 流程控制语句

    编程语言中的流程控制语句分为以下几类: 顺序语句 分支语句 循环语句 其中顺序语句不需要单独的关键字来控制,就是按照先后顺序一行一行的执行,不需要特殊的说明. 下面主要是 分支语句 和 循环语句的说明 ...

  2. Python 入门之流程控制语句

    Python 入门之流程控制语句 1.if判断 (1) 单 if if –-如果 if 条件: 缩进 结果 (官方推荐4个空格,或者一个tab 不能空格和tab混合使用) money = 10 pri ...

  3. 『无为则无心』Python基础 — 14、Python流程控制语句(while循环语句)

    目录 1.什么是循环结构 2.while循环 (1)while循环的语法 (2)while循环的应用 3.while语句的死循环 4.break和continue 5.while循环嵌套 (1)应用场 ...

  4. java基础3_流程控制语句

    一 条件判断 1. 条件运算符(三元表达式) ,其形式为: type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4; 2. 轻量级的文本编辑器:Ultr ...

  5. 再回首,Java温故知新(九):Java基础之流程控制语句

    流程控制语句分为条件语句.循环语句和中断语句. 中断语句包括break和continue,两者的区别在于break会跳出整个循环,而continue则是跳出此次循环,之后还会继续下一次循环. 条件语句 ...

  6. java基础,流程控制语句

                                流程控制语句 条件语句:              if语句:                        *if(条件 boolean类型) ...

  7. JavaSE基础篇—流程控制语句

    本章知识点分析: 流程控制语句 1.定义:流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控 制方式采用结构化程序设计中规定的三种基本流程机构:顺序结 ...

  8. Java基础学习-流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...

  9. JavaScript基础之流程控制语句

    第三部分:流程控制语句 JavaScript代码是书写位置: JavaScript代码应该写在<script type=”text/javascript”></script>这 ...

随机推荐

  1. [转]RabbitMQ消息队列在PHP下的应用

    FROM : http://www.cnblogs.com/phpinfo/p/4104551.html 参考资料: http://www.yuansir-web.com/tag/rabbitmq/ ...

  2. HBase简介

    HBase简介 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. HB ...

  3. CSS background-position 问题

    今天在用background-position进行BODY背景图定位的时候发现100% 100%理应定位在右下角,结果却不一致,查了下语法也没问题 结果发现是background-attachment ...

  4. 学习SQLite之路(四)

    20160621 更新 参考: http://www.runoob.com/sqlite/sqlite-tutorial.html 1. SQLite   alter命令:不通过执行一个完整的转储和数 ...

  5. nodejs学习之实现简易路由

    此前实现了个数据转发功能,但是要建本地服务器,还需要一个简易的路由功能.因为只是用于本地服务器用于自己测试用,所以不需要太完善的路由功能,所以也就不去使用express框架,而是自己实现一个简易路由, ...

  6. SQL复杂查询和视图(2)

    分组查询 SQL可以将检索到的元组按某一条件进行分组,分组是属性值相同的为一组 求每个学生的平均成绩 SELECT sn,AVG(score)FROM scGROUP BY sn 先按sn进行分组,即 ...

  7. 简易版viewport

    首先这里涉及到虚拟像素和物理像素,不管是移动设备还是pc都存在这个概念1.在显示器精度还不是很高的年代,一个物理像素就等于一个虚拟像素,1000px的网页就占据了1000的物理像素(如果你玩过小霸王, ...

  8. go linux 学习记录

    1 yum install mercurial 安装mercurial包 2 yum install git 安装git包 3 yum install gcc 安装gcc 4  然后就可以下载gola ...

  9. Docker总结(图片打开略慢请知晓)

  10. RabbitMQ 工作队列

    创建一个工作队列用来在工作者(consumer)间分发耗时任务. 工作队列的主要任务是:避免立刻执行资源密集型任务,然后必须等待其完成.相反地,我们进行任务调度:我们把任务封装为消息发送给队列.工作进 ...