1、循环语句

Python提供了for循环和while循环
while在给定的判断条件为 true 时执行循环体,否则退出循环体。
for重复执行语句
嵌套循环可以在while循环体中嵌套for、while循环

2、while语句

while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while判断条件:
        执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true,当判断条件假false时,循环结束。

例子:使用while循环输入 1 2 3 4 5 6 8 9 10

 i = 0
while i < 10:
i+=1
if i == 7:
continue
else:
print(i)

输出 1-100 内的所有奇数

 i = 1
while i <=100:
if i%2 == 1:
print(i)
i+=1

求1-2+3-4+5 ... 99的所有数的和

 result = 0
i = 1
while i <=99:
if i%2 == 0:
result = result - i
else:
result = result + i
i+=1
print(result)

3、while循环使用else语句

在 python 中,while … else 在循环条件为false时执行else语句块:

实例

 count = 0
while count < 5:
print (count, " is less than 5")
count = count + 1
else:
print (count, " is not less than 5")

以上实例输出结果为:

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5

4、for语句

for循环可以遍历任何序列的项目,如一个列表或者一个字符串,不能遍历int数值。

for循环的语法格式如下:

 msg = 'abcd'
for i in msg:
print (i)

a
b
c
d

计算1-100的和:

 sum = 0
for x in range(101):
sum = sum + x
print(sum)

输出a-z

 for j in range(ord('a'), ord('z')+1):
print(chr(j),end=' ')

a b c d e f g h i j k l m n o p q r s t u v w x y z

 a = []
for i in range(ord('a'),ord('z')):
a.append(chr(i))
print(a)

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y']

ord函数将字符转换为整数显示,chr函数将整数转换为字符显示

while和for循环的区别:
while循环一般通过数值是否满足来确定循环的条件
for循环一般是对能保存多个数据的变量,进行遍历

5、通过序列索引迭代

另外一种执行循环的遍历方式是通过索引,如下实例:

 fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print('第%s个水果是:%s'%(index+1,fruits[index]))

第1个水果是:banana
第2个水果是:apple
第3个水果是:mango

6、循环使用else语句

在 python 中,for … else表示这样的意思,for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即 for不是通过break跳出而中断的)的情况下执行,while … else 也是一样。

 for num in range(10,20):
for i in range(2,num):
if num%i == 0:
j = num//i
print('%s等于%s * %s'%(num,i,j))
break
else:
print('%s是一个质数'%num)

10等于2 * 5
11是一个质数
12等于2 * 6
13是一个质数
14等于2 * 7
15等于3 * 5
16等于2 * 8
17是一个质数
18等于2 * 9
19是一个质数

7、循环嵌套

7.1、for循环嵌套语法实现九九乘法表:

 for x in range(1,10):
for y in range(1,x+1):
print('%s*%s=%-4s'%(y,x,x*y),end='')
print()

%2s表示这个字符最少占用2个字符,如果只有一个字符则靠右显示
%-2s表示这个字符最少占用2个字符,如果只有一个字符且字符靠左显示
默认情况下,print() 除了打印你提供的字符串之外,还会打印一个换行符,所以每调用一次 print() 就会换一次行,如同上面一样。

7.2、while循环嵌套语法实现九九乘法表:

 i = 1
while i < 10:
j = 1
while j <= i:
print('{}*{}={:<4d}'.format(j,i,j*i),end='')
j+=1
i+=1
print()

7.3、列表解析实现九九乘法表:

print ('\n'.join([' '.join(['%s*%s=%-4s'%(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))

print后面输出的内容默认是自带回车的,在Python2中,print最后面加上一个逗号表示不换行,在Python3中,print最后面加上一个,end=''或者,end=""表示不换行。

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

8、循环控制语句

break语句

用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句可用在while和for循环中。
如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

continue语句
用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句可用在while和for循环中。
continue语句跳出本次循环,而break跳出整个循环。

9、例子:斐波那契(Fibonacci)数列

打印斐波那契数列。这个数列前两项为 1,之后的每一个项都是前两项之和。所以这个数列看起来就像这样:1,1,2,3,5,8,13 ......

 a,b = 0,1
while b < 100:
print(b,end=' ')
a,b = b,a+b

运行程序:
1 1 2 3 5 8 13 21 34 55 89

第一行代码中我们初始化a和b。当b的值小于100的时候,循环执行代码。

循环里我们首先打印b的值,然后在下一行将a+b的值赋值给b,b的值赋值给a。
你可以这样理解,Python中赋值语句执行时会先对赋值运算符右边的表达式求值,然后将这个值赋值给左边的变量。

10、while循环中利用标志位退出循环

1、使用break退出循环(如果有多层循环时,需要考虑break的位置,不方便)

flag = True
count = 0
while flag:
user = input('user>>: ')
password = input('password>>: ')
count += 1
if count ==3:
print('too many')
break
if user == 'admin' and password == '':
print('success')
while True:
cmd = input('cmd>>: ')
if cmd == 'q':
break
break

2、利用标志位退出(将flag定义为True,循环中可以使用flag作为条件,当需要退出所有循环时,可以改变flag的值为False即可,更方便)

flag = True
count = 0
while flag:
user = input('user>>: ')
password = input('password>>: ')
count += 1
if count ==3:
print('too many')
flag=False
if user == 'admin' and password == '':
print('success')
while flag:
cmd = input('cmd>>: ')
if cmd == 'q':
flag=False

day07-while,for循环的更多相关文章

  1. day07 分支,循环

    目录 if(分支) if的语法 if...else... if...elif...else if的嵌套 for循环 for-else 语句 for循环的嵌套(重要) range介绍 while循环 w ...

  2. Java历程-初学篇 Day07 循环结构2 for循环

    一,格式 for(赋值语句//为循环变量赋初值;条件语句//循环结构的循环条件;赋值语句//迭代,修改循环变量的值){ //循环体; } 二,简单举例 for(int i=1;i<=10;i++ ...

  3. day07整理(内置方法\循环判断)

    目录 一.上节课回顾 (一)if判断 1.单分支结构 2.双分支结构 3.多分支结构 (二)for循环 1.for + break 2.for + continue 3.for循环嵌套 (三)robu ...

  4. python27期day07:基础数据类型补充、循环删除的坑、二次编码、作业题。

    1.求最大位数bit_length: a = 10 #8421 1010print(a.bit_length())结果:42.capitalize首字母变大写: s = "alex" ...

  5. python day07笔记总结

    2019.4.4 S21  day07笔记总结 一.深浅拷贝 1.copy.copy()     浅拷贝 deep.copy()    深拷贝 2.一般情况 1.str/int/bool 是不可变类型 ...

  6. C++Primer笔记-----day07

    ==========================================================================day07===================== ...

  7. Day07 jdk5.0新特性&Junit&反射

    day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装M ...

  8. python开发学习-day07(面向对象之多态、类的方法、反射、新式类and旧式类、socket编程)

    s12-20160227-day07 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  9. 记录我的 python 学习历程-Day07 基础数据类型进阶 / 数据类型之间的转换 / 基础数据类型总结 / 编码的进阶

    基础数据类型 str(字符串) str:补充方法练习一遍就行 s.capitalize() 首字母大写,其余变小写 s = 'dyLAn' print(s.capitalize()) # Dylan ...

  10. day07 python列表 集合 深浅拷贝

    day07 python   一.知识点补充     1."".join() s = "".join(('1','2','3','4','5'))  #将字符串 ...

随机推荐

  1. kafka 生产消费原理详解

    Kafka日志及Topic数据清理 https://blog.csdn.net/qiaqia609/article/details/78899298 Kafka--Consumer消费者 pastin ...

  2. 廖雪峰Java2面向对象编程-4抽象类和接口-1抽象类

    每个子类都可以覆写父类的方法 如果父类的方法没有实际意义,能否去掉方法的执行语句?子类会报编译错误 如果去掉父类的方法,就失去了多态的特性 可以把父类的方法声明为抽象方法. 如果一个class定义了方 ...

  3. 阿里云直播服务 sdk demo php

    [php] <?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/12/8 0008 * Time: 11:05 ...

  4. 关于android中透明、半透明、百分比转换

    在xml文件中,可以直接写#0000,这个是全透明的效果.#9000这个值相当于56%的样子,因为颜色值是16进制的,#9000相当于(9/16)而百分比的话,大家可以按照这个比例来换算全透明 #00 ...

  5. 开始创作自己的VR作品——VR故事叙述终极指南

    转自:http://www.52vr.com/article-1870-1.html       在8月份,YouTube Space LA开展了“VR Creator Lab”的活动,为期三个月.参 ...

  6. Centos 7 下, 安装odoo 10

    1. Centos在虚拟机中, 最小化安装, 网络连接选择的是 桥接模式, 安装完成后, 是不能直接上网的, 输入root 和密码, 登录进去, 然后执行: [root@localhost ~]# v ...

  7. CRM 2016 一个IFrame页面,执行另一IFrame页面的函数

    如果IFrame_A  想执行 IFrame_B 中 RefreshSelf() 函数,可以按以下方法写: 此js代码写在 IFrame_A 中 parent.Xrm.Page.getControl( ...

  8. insert into table 插入多条数据

    方法1: insert into `ttt` select '001','语文' union all select '002','数学' union all select '003','英语'; 方法 ...

  9. cocos源码分析--RenderTexture

    cocos中RenderTexture主要用来实现截屏,然后把截取出来的图片保存到磁盘中,除了保存图片和渲染纹理,它还可以得到一些预渲染结果,并将这些结果作为一种纹理数据. 例如我们可以用RGB5_A ...

  10. vue实现未登录跳转到登录页面

    环境:vue 2.9.3; webpack;vue-router 目的:实现未登录跳转 例子:直接在url地址栏输入...../home,但是这个页面要求需要登陆之后才能进入,判断的值就通过登陆之后给 ...