写重复代码 是可耻的行为

-------------- 完美的分割线  --------------

摘录自:http://www.runoob.com/python/python-loops.html

程序在一般情况下是按顺序执行的,编程语言提供了各种控制结构,允许更复杂的执行路径。

循环(loop)用于解决重附代码的问题

循环语句允许我们用简单的方法执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式

1.循环类型

1.1.循环分类

1)根据循环次数分类

有限循环(次数限制)
无限循环(死循环)

2)根据语法可以分为以下类型:

Python提供了for循环和while循环(在Python中没有do..while循环):

循环类型 描述
while 循环 在给定的判断条件为 true 时执行循环体,否则退出循环体。
for 循环 重复执行语句
嵌套循环 你可以在while循环体中嵌套for循环

1.2.循环控制语句

循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:

控制语句 描述
break 语句 在语句块执行过程中终止循环,并且跳出整个循环
continue 语句 结束本次循环,进入下次循环
pass 语句 pass是空语句,是为了保持程序结构的完整性。

注意:

shell脚本里用break2可以跳出2层循环,但python不可以,这不是好语法,会造成语义混乱

2.while循环

2.1.while循环语法

Python 编程中 while循环是指在某条件下,重复执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

while 判断条件:
执行语句……

执行语句可以是单个语句或语句块。

判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。

执行流程图如下:

# 实例1:循环打印0-100

count = 0
while count <= 100:
print("loop ",count)
count += 1
print("-------end-------")

# 实例2:打印100以内的偶数

count = 0
while count <= 100:
if count % 2 == 0: # 除以2余数为0的数
print("loop ",count)
count += 1
print("-------end-------")

# 实例3:第50次不打印,第60-80打印对应值的平方

count = 0
while count <= 100:
if count == 50:
pass # 过
elif count >= 60 and count <= 80:
print(count*count)
else:
print(count)
count += 1
print("-------end-------")

2.2.死循环(无限循环)

语法:

while True:
执行代码...

# 实例1:死循环

count = 0
while True:
print("forever ",count)
count += 1

2.3.循环终止语句

break 完全终止循环
continue 终止本次循环,跳过本次循环
exit() 任意位置退出程序

# 实例1:break退出循环

count = 0
while count <= 100:
print("loop ",count)
if count == 5:
break
count += 1
print("-----out of while loop-----")

# 实例2:玩猜年龄3次就退出了

age = 26
count = 0
while count < 3:
age_guess = int(input("猜猜年龄:"))
if age_guess == age:
print("猜对了!")
break
elif age_guess < age:
print("猜大点")
else:
print("猜小点")
count += 1

# 实例3:玩猜年龄3次后问是否还要玩

age = 26
count = 0
while count < 3:
age_guess = int(input("猜猜年龄:"))
if age_guess == age:
print("猜对了!")
break
elif age_guess < age:
print("猜大点")
else:
print("猜小点")
count += 1
if count == 3:
again = input("还想玩吗[y]:")
if again == 'y':
count = 0
else:
exit('byebye')

2.4.python中while的特殊语法

语法:

while...else语句

while循环正常执行完,中间没有被 break 中止,就执行else语句
推论:没有看到else后面的语句就说明循环被中断过

else 作用:可以让你知道你的程序中间是否被break过

# 实例1:while...else正常执行完

count = 0
while count <= 5:
count += 1
print("loop ",count)
else:
print("循环正常执行完了")
print("-------end-------")

返回结果如下:

loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
循环正常执行完了
-------end-------

# 实例2:while...else被break打断

count = 0
while count <= 5:
count += 1
if count == 3:
print('终止循环')
break
else:
print("loop ", count)
else:
print("循环正常执行完了")
print("-------end-------")

返回结果如下:

loop  1
loop 2
终止循环
-------end-------

总结经验:

不用非要从语义理解记忆,将while...else作为一组语句,正常语法执行完上面的while循环就执行下面的else语句,while循环被break终止就不执行下面的语句

3.for循环

参考:http://www.runoob.com/python/python-for-loop.html

3.1.for循环语法

Python的for循环用于遍历任何序列中的对象,如列表或字符串

for iterating_var in sequence:
statements(s)

流程图:

3.2.for循环实例

# 实例1:打印0到10之间的奇数

方法1:for循环加if判断,比较复杂

for i in range(10):
if i % 2 == 1:
print(i)

方法2:步长,简单高效

for i in range(0,10,1):
print("loop:",i)

# 实例2:打印0到10之间的偶数,隔2个打印:02468

for i in range(0,10,2):
print("loop:",i)

# 实例3:从0打印到10之间的,隔3个打印:0369

for i in range(0,10,3):
print("loop:",i)

# 实例4:猜数字,只能猜3次,猜对就退出,猜不对就退出

num = 26
for i in range(3):
guess_num = int(input("Please input your num:"))
if guess_num == num:
print("yes,you got it!")
break
elif guess_num > num:
print("please guess smaller...")
else:
print("please guess bigger...")
else:
print("You have tried too many times")

只要上面的for循环正常执行完毕,没被打断,就会执行else的语句
如果遇到break被打断则不走else的,因为break下面的代码不执行
遇到continue后else的代码是会执行的

# 练习:写一个登录程序,连续输错3次用户名或密码则退出。

_user = input("username:")
_passwd = input("password:")
for i in range(3):
i_user = input("input username:")
i_passwd = input("input password:")
if i_user == _user and i_passwd == _passwd:
print("Welcome login %s" %_user)
break
else:
print("Invalid username or passord!")

-------------- 完毕,呵呵呵呵 ---------------

Python流程控制-while循环-for循环的更多相关文章

  1. Laravel 5.6 视图用Blade语法传递变量和流程控制if 语句和循环语句

    Laravel5.6 视图用Blade语法传递变量和流程控制if 语句和循环语句 Laravel 的 View 部分是内置了两套输出系统:直接输出和使用 Blade 引擎“编译”后输出,默认情况下它们 ...

  2. Java基础-程序流程控制第二弹(循环结构)

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

  3. Python(四)之Python流程控制(if、while、for)

    Python流程控制 if测试: if 条件测试表达式: 组合条件测试: x and y:与运算 x or y:或运算 not x:非运算 while: break:跳出最内层的循环 continue ...

  4. Python 流程控制-分支结构详解

    目录 Python 流程控制--分支结构 1.结构分类 顺序结构 分支结构 循环结构 2.分支结构详解 分支结构 定义格式: if 单支结构 if 双分支结构 if 多分支结构 Python 流程控制 ...

  5. python 流程控制(条件语句)

    1,python流程控制单条件基本语句 2,python流程流程多条件控制语句 3,三元运算 1,python流程控制单条件基本语句 if 判断条件: 执行语句…… else: 执行语句…… 判断条件 ...

  6. python流程控制和循环

    变量的命名:可以由数字字母下换线组成 ,不能以数字开头,可以使用中文但是不推荐使用中文,不推荐前面使用_ __,不能使用系统的关键字,变量名严格区分大小写 逻辑运算优先级 or<and<n ...

  7. Python流程控制if判断以及whlie循环

    一.基本运算符补充 1. 算术运算          print(10 / 3)          print(10 // 3)          print(10 ** 2) 2. 赋值运算    ...

  8. Learning-Python【4】:Python流程控制与循环

    一.if...else分支 1.什么是if判断 判断一个条件如果成立则如何,不成立则如何 2.为何要有if判断 让计算机能像人一样具有判断能力 语法1:if...else if 判断条件: 代码块1 ...

  9. python流程控制for循环

    流程控制 for循环 #首先我们用一例子看下用while循环取出列表中值的方法 l=['a','b','c'] i=0 while i<len(l): print(l[i]) i+=1 #whi ...

  10. Python流程控制与while 循环(day01)

    一:流程控制 假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的.你要判断哪条叉路是你真正要走的路,如果我们想让 ...

随机推荐

  1. zlib编译安装

    从http://www.zlib.net/下载了最新的源代码 zlib提供了vs sln文件,在zlib-1.2.8\contrib\vstudio\目录有 其中的zlibstat是编译为静态库zli ...

  2. C# Winform backgroundWorker组件使用

    BackgroundWorker 组件用来执行诸如数据库事务.文件下载等耗时的异步操作. 开始 在应用程序中添加一个BackgroundWorker实例,如果用的是VS,可以从工具上直接拖到应用程序: ...

  3. 分页组件vue和jsp版本

    vue版本 <template> <div class="com-vscroll"> <slot name="mcontent"& ...

  4. android中代码操作外部SD卡出错:W/System.err(1595): Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)

    AndroidManifest.xml 中加上: <uses-permission android:name="android.permission.WRITE_EXTERNAL_ST ...

  5. MOPSO 多目标粒子群优化算法

    近年来,基于启发式的多目标优化技术得到了很大的发展,研究表明该技术比经典方法更实用和高效.有代表性的多目标优化算法主要有NSGA.NSGA-II.SPEA.SPEA2.PAES和PESA等.粒子群优化 ...

  6. 一个免费ss网站的数据爬取过程

    一个免费ss网站的数据爬取过程 Apr 14, 2019 引言 爬虫整体概况 主要功能方法 绕过DDOS保护(Cloudflare) post中参数a,b,c的解析 post中参数a,b,c的解析 p ...

  7. Cooperation.GTST团队第二周项目总结

    项目进展 这周我们把工作主要放在了UI界面的实现上,为了让整款APP看上去能够更加高大上,我们决定采用Android 5.0开始推出的一个Material Design风格的导航控件Toolbar. ...

  8. ubuntu16.04+七彩虹GTX1060的NVIDIA驱动+Cuda8.0+cudnn5.1+tensorflow+keras搭建深度学习环境【学习笔记】【原创】

    平台信息:PC:ubuntu16.04.i5.七彩虹GTX1060显卡 作者:庄泽彬(欢迎转载,请注明作者) 说明:参考了网上的一堆的资料搭建了深度学习的开发环境,下班在宿舍折腾了好几个晚上才搞定,写 ...

  9. 内核加载模块时提示usb_common: exports duplicate symbol of_usb_get_dr_mode

    1.分析: 既然符号重复了,那么说明有一个部分既被编译到内核中也被编译成模块了,因此在加载模块时,内核报符号重复的提示 2.解决 直接配置内核的某一部分编译成模块,例如笔者就直接将USB这一部分编译成 ...

  10. 开源工具-Json 解析器 Jackson 的使用

    Json已经成为当前服务器与 WEB 应用之间数据传输的公认标准.Java 中常见的 Json 类库有 Gson.JSON-lib 和 Jackson 等.相比于其他的解析工具,Jackson 简单易 ...