python中的循环

python中的 循环语句有两种 for...in循环 和 while循环。循环控制语句,和其他的语言类似,也有break和continue。与其他语言不同的地方是for...in循环和while循环,后面可以有else语句,具体下面会依次介绍~

循环语句的控制结构图如下:

for in 循环

for in 循环的语法如下:

for in :

其中可以是一个字符串或者也可以是一个列表 等...

for i in 'hello': # 遍历字符串

print(i)

输出结果:

h

e

l

l

o

######

for i in ['a', 'b', 'c', 'd']: # 遍历列表

print(i)

输出结果:

a

b

c

d

######

d = {'a': 1, 'b': 2, 'c': 3}

for k, v in d.items(): # 遍历字典,可同时迭代key和value

print(k, v)

输出结果:

a 1

b 2

c 3

这些可以直接被迭代的对象 统称为可迭代对象:Iterable(collections模块的Iterable类型),只要是Iterable对象就可以作用于for循环。可以使用 isinstance() 判断一个对象是否是 Iterable 对象,示例如下:

lst = (1, 2, 3) # 元组类型

flag = isinstance(lst, Iterable)

print(flag)

输出结果:

True # 元组为可迭代对象

如下两种数据类型可以总用于for循环中:

1)集合数据类型,如:list、tuple、dict、set、str...

2)生成器(generator)和带yield的generator function

range()函数

range()函数为python内置函数,能够生成数列。

hello_range = range(3)

print(isinstance(hello_range, Iterable))

for i in hello_range: # 循环遍历 数列

print(i)

输出结果:

True # range(3) 所生成的对象为 可迭代对象

0

1

2

使用range指定数列的区间:

>>> for i in range(2,5):

... print(i)

...

2

3

4

除了指定区间,还可以指定步长:

>>> for i in range(2, 10, 3):

... print(i)

...

2

5

8

range()函数除了可以作用于for循环中,还可以用于创建list或者tuple:

hello_list = list(range(10)) # 生成 list

print(hello_list)

hello_tuple = tuple(range(10)) # 生成 tuple

print(hello_tuple)

for...in 循环中的 else 语句

for...in 后面还可以有 else 语句,语法如下:

for in :

else:

else 中的语句,会在 for 循环结束之后执行:

>>> for i in range(5):

... print(i)

... else:

... print('end...')

...

0

1

2

3

4

end...

Tip:若 for 循环被 break 终止,则 else 中的语句不会被执行,下面会介绍~

while循环

python中while循环的语法如下:

while :

条件满足,则一直循环,知道条件不满足,退出循环~

示例如下,求1 ... 100 的总和:

sum = 0

n = 1

while n <= 100:

sum += n

n += 1

print(sum) # 输出结果:5050

while 循环中的 else 语句

类似于 for...in 循环,while 循环后面也可以有 else 语句,语法如下:

while :

else:

当 while 后面的判断语句返回值为 false,则循环终止,然后执行 else 中的语句。同 for...in 循环一样,若循环被 break 终止,则不会执行 else 中的语句。

sum = 0

n = 1

while n <= 100:

sum += n

n += 1

else:

print('end...loop')

print(sum)

输出结果:

end...loop

5050

无限循环

可以使 while 后面的判断语句一直返回为 True,这样循环将不会被终止,一直执行循环体中的语句:

while True:

username = input('请输入用户名:')

print('welcome %s' % username)

输出结果:

请输入用户名:Obama

welcome Obama

请输入用户名:Trump

welcome Trump

请输入用户名:

......

......

例如 Linux 终端用户的登录,若用户输入的用户名和密码不正确,则会一直要求用户重新输入,直到输入正确为止~

简单模拟下:

username = 'baby'

passwd = '123456'

flag = True

while flag:

login_username = input('请输入用户名:')

login_passwd = input('请输入密码:')

if login_username == username and login_passwd == passwd:

flag = False

else:

print('Welcome %s' % username)

输出结果:

请输入用户名:Obama

请输入密码:abc

请输入用户名:Trump

请输入密码:123

请输入用户名:baby

请输入密码:123456

Welcome baby

break和continue语句

在循环语句中还可以使用 break ,contiune 来控制循环流程。

continue语句

continue 用于略过本次循环中剩下的语句,直接进入下一次循环,示例如下:

# 计算1...100的奇数和

sum =0

count = 0

while count < 100:

count += 1

if count % 2 != 1: # 若不是奇数,直接进入下一次循环

continue

sum += count

print('sum=%s' % sum)

输出结果:

sum=2500

break语句

break 用于跳出最近的一个循环,示例如下:

sum =0

count = 1

while count <= 100:

if count == 51:

break

sum += count

count += 1

print('sum=%s' % sum)

输出结果:

sum=1275

当count为51时,终止循环,则sum计算的是 1...50 的总和

Tip:break跳出循环,仅跳出最近的一个循环,若循环只有一层,执行break之后,循环就结束了;若循环有2层,则外侧的循环还会继续

lst_1 = ['a......', 'b......', 'c......']

lst_2 = [1, 2, 3]

for i in lst_1:

print(i)

for j in lst_2:

print(j)

输出结果:

a......

1

2

3

b......

1

2

3

c......

1

2

3

如上所示,这里有两层循环,现在,当内侧循环至2时,使用break终止循环(见下面的示例),可以看到,内侧循环在输出lst_2中的2之后终止,但是外侧的循环还在继续:

lst_1 = ['a...', 'b...', 'c...']

lst_2 = [1, 2, 3]

for i in lst_1:

print(i)

for j in lst_2:

print(j)

if j == 2:

break

输出结果:

a...

1

2

b...

1

2

c...

1

2

break还有一个注意点,就是当循环被break终止时,不会执行循环后面的 else 语句

lst_1 = ['a...', 'b...', 'c...']

for i in lst_1:

print(i)

else:

print('end...')

输出结果:

a...

b...

c...

end... # 正常执行else中的内容

lst_1 = ['a...', 'b...', 'c...']

for i in lst_1:

print(i)

if lst_1.index(i) == 1: # 当循环值lst_1下标为1的元素时,终止循环

break

else:

print('end...')

输出结果: # 没有 c... 和 end... 输出

a...

b...

while 循环也一样,这里就直接使用上面的例子:

sum = 0

count = 1

while count <= 100:

if count == 51:

break

sum += count

count += 1

else:

print('end loop...')

print('sum=%s' % sum)

输出结果:

sum=1275 # else 中的 end loop... 并没有输出

.................^_^

python循环语句-python循环语句相关推荐

  1. python for语句_Python循环语句

    python流程控制语句包括:if条件语句.while循环语句.for循环语句.range函数以及break.continue.paa控制语句 一.if语句 a = 2 if a >3: pri ...

  2. pythonfor循环语句1到7、不要4_【IT专家】关于Python中的for循环控制语句

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 关于 Python 中的 for 循环控制语句 2010/06/14 500461 #第一个:求 50 - 100 之间的质数 import ma ...

  3. python until语句_Python3 循环

    Python中的循环语句有 for 和 while. Paste_Image.png while循环 Python中while语句的一般形式: while 判断条件: statements 同样需要注 ...

  4. python 条件语句漫画解析_【Python】解析Python中的条件语句和循环语句

    1.if语句 if语句有好几种格式,比如: ifcondition: statement 使用 if ... else ...: ifcondition: statement(1)else: stat ...

  5. python中break可以用在for和if中吗_Python的for和break循环结构中使用else语句的技巧...

    在Python中的while或者for循环之后还可以有else子句,作用是for循环中if条件一直不满足,则最后就执行else语句. for i in range(5): if i == 1: pri ...

  6. python条件语句-python条件、循环语句

    既然讲到语句,那先说明一下语句块.语句块不是一种语句,是一组语句.在条件为真时执行或者多次的一组语句.主要注意其格式,用冒号来标识语句块的开始,块中每行缩进相同的量,一般4个空格(tab字符位置为8个 ...

  7. python循环语句-python----循环语句及循环控制语句

    原标题:python----循环语句及循环控制语句 本章节将向大家介绍Python中的条件控制语句及循环控制语句,希望本篇文章对你有所帮助. 一.while 语句 1.while语句的基本形式: [w ...

  8. python循环语句-Python-循环语句及循环控制语句

    循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式: Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环): ...

  9. python while循环语句-Python While 循环语句

    Python While 循环语句 Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件(cond ...

  10. python while循环语句-谈谈Python中的while循环语句

    前言 python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组. ...

最新文章

  1. Linux视频教程系列汇总
  2. mysql设置slave复制_mysql5.5建立主从复制(setupmaster-slavereplication)_MySQL
  3. python百度网盘-bypy-百度网盘Python客户端 linux
  4. redhat9Linux解压gz,linux (redhat9)下subversion 的安装
  5. 最简单的语言来说JAVA中的NEW到底怎么搞
  6. wince6.0编译命令分析
  7. js操作json数据的一些感受
  8. nikita popov php,PHP中对performance的考虑点
  9. WordPress内核站群全自动新闻采集发布源码,单站专用
  10. FMS案例开发--视频聊天室(三)
  11. 求oracle学习资料(最好是视频)
  12. win10前置耳机插孔没声音_新买的电脑,为什么插入耳机没有声音?一招教你快速解决...
  13. vs2019配置OpenGL教程
  14. python实现简单的词形统计
  15. 2017 Google IO 开发者大会直播入口
  16. School Regional Team Contest, Saratov, 2011-F. Spiders-求树直径
  17. _, predicted = torch.max(outputs, 1),_,的作用
  18. Ubuntu Desktop gedit
  19. PostCSS received undefined instead of CSS string
  20. 《Raytracing In One Weekend》学习笔记 Chapter 1、2、3、4、5、6、7、8、9、10、11、12、13

热门文章

  1. DISK 100% BUSY,谁造成的?(ok)
  2. Confluence 6 中样式化字体
  3. 【笔记篇】C#笔记1
  4. 1.1ASP.NET Web API 2入门
  5. VirtualProtect VirtualLock VirtualUnlock
  6. 网页布局设计的标准尺寸
  7. 算法导论 习题24.2-4 amp; 24.3-6 单源最短路径问题
  8. 帮助子女养成良好的读书习惯 胜过1000亿财富
  9. 发布订阅--SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名...
  10. 设计模式:访问者(Visitor)模式