[ while 循环 ]

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

>>> 1 + 2 + 3

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

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

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

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

输出1到10的所有整数:

num = 1
while num <11:
print(num)
num = num +1

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

break语句会终端当前循环。

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

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

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

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

while循环中的else:

# while循环结构
while 判断条件:
执行语句……
else:
执行语句……

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

# 循环没有被中断
num = 0
while num<10:
num = num + 1
if num%2 ==0:
continue
print(num)
else:
print("else-----")
### 循环被中断
num = 0
while num<10:
num = num + 1
if num%2 ==0:
break
print(num)
else:
print("else-----")

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

init_num = 12
num = int(input("Enter:"))
while init_num != num:
if num > init_num:
print("数字过大")
else:
print("数字过小")
num = int(input("Enter:"))
print("猜对了") 嵌套循环:循环套循环 num1 = 0
while num1 <3:
print(num1,end="++" )
num1 += 1
num2 = 0
while num2<3:
print(num2,end="")
num2 +=1
print()
练习:

1. 输出九九乘法表

first = 1
while first<=9:
sec = 1
while sec <= first:
print( str(sec)+"*"+ str(first) +"="+str(sec * first), end="\t")
sec += 1
print()
first += 1

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

height = int(input("Height:"))  # 用户输入一个高度 4
width = int(input("width:")) # 用户输入一个宽度 3
num_height = 1
while num_height <=height:
num_width = 1
while num_width <= width:
print("#", end="")
num_width += 1
print()
num_height += 1

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

[ 序列 ]

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

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

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

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

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

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

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

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

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

# rang()的用法: 

range(stop)
#stop为结束位置,列出从0到stop之前的所有整数
range(start, stop[, step])
#列出从start开始,到stop之前所有的数字
range(start, stop[, step])
#start表示起始数字,stop表示结束数字,step表示每两个相邻数字之间的差,也叫步长

实例:

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

[ for 循环 ]

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

流程图:

基本语法结构为:

# for循环结构一
for var in sequence:
statements(s) # for 循环示例
for i in range(10):
print(i)

实例:

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

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

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

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

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

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

输出结果:

当前水果 : banana
当前水果 : apple
当前水果 : mango
Good bye!

for  循环中的else语句:

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

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

输出结果:

10 = 2 * 5
11 是一个质数
12 = 2 * 6
13 是一个质数
14 = 2 * 7
15 = 3 * 5
16 = 2 * 8
17 是一个质数
18 = 2 * 9
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. Scrapy 爬虫

    Scrapy 爬虫 使用指南 完全教程   scrapy note command 全局命令: startproject :在 project_name 文件夹下创建一个名为 project_name ...

  2. CSS3 动画效果带来的bug

    css3 动画效果比如transition:all 2s linear;这种用来计算及时的物体坐标的话会带来一定的问题 比如把一个DIV从A点移动到B点.JS为DIV.style.left=B; 但是 ...

  3. 本地的html怎么直接通过路径就读取本地文件。

    我要做的事情是已知一个目录的相对路径,获得这个路径下面所有的txt文件,然后读到一个JS Script里面做下一步处理. 网上的例子都是使用input的,既然我是local的html文件,也知道路径了 ...

  4. meta标签大全

    meta标签大全 <!--     x-ua-compatible(浏览器兼容模式)     仅对IE8+以效     告诉浏览器以什么版本的IE的兼容模式来显示网页     <meta ...

  5. flash

    1. 1.这种方式已经比较旧了, 2. html.push('<div class="flash-ad" style = "position:relative&qu ...

  6. [BZOJ1116][Poi2008]LCO(并查集)

    题目:http://hzwer.com/3010.html 分析:注意这里无向边是对入度没有贡献的. 那么对于一个n个点的连通块而言,如果它是一颗树(n-1条边),那么把所有边全部从某个根开始向下指, ...

  7. 用户 'IIS APPPOOL\***' 登录失败

    用户 'IIS APPPOOL\DefaultAppPool' 登录失败. 我在windows8中安装了iis之后添加了我做的网站打开之后提示用户 'IIS APPPOOL\DefaultAppPoo ...

  8. difference between append and appendTo

    if you need append some string to element and need set some attribute on these string at the same ti ...

  9. android开发------编写用户界面之相对布局

    今天要说的是RelativeLayout.RelativeLayout相对于LinearLayout的主要不同点在于它需要一个参照物. 我们先来看一下官方对这个布局的解释: RelativeLayou ...

  10. [团队项目]Github生成燃尽图的方式

    经过一晚上折腾,终于算是把linux上成功生成了我们团队项目的燃尽图,效果还是不错,在过程中又发现了另一种生成燃尽图的方式,也是基于一个开源项目. 1.准备: 首先你的项目一定要有milestone. ...