知识内容:

1.if-else分支结构

2.while循环

3.for循环

4.循环结构综述

5.break和continue语句

一、if-else分支结构

1.单分支选择结构

 if 表达式:
语句块

当表达式等价为True时表示条件满足,语句块将被执行

示例:

 x = input("Input two numbers: ")
a, b = map(int, x.split())
if a > b:
a, b = b, a
print(a, b)

2.双分支选择结构

 if 表达式:
语句块1
else:
语句块2

当表达式等价为True时表示条件满足,语句块1将被执行,否则语句块2将执行

示例:

 x = input("Input two numbers: ")
a, b = map(int, x.split())
if a > b:
a, b = b, a
else:
pass # 在python中pass表示不做任何操作
print(a, b)
 my_age = 21
if my_age > 50:
print("Too old! Time to retire!")
else:
print("还可以继续浪")

注: python中还有适用于简单表达式的二分支结构(也叫三元运算):

<表达式> if 条件 else 表达式2

eg:

 guess = eval(input(">>>"))

 print("猜{}了".format("对" if guess==99 else "错"))  # guess为99输出对  否则输出错

3.多分支选择结构

 if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
.
.
.
else:
语句块n

以上的elif是else if的缩写,示例如下:

 # __author__ = "wyb"
# date: 2018/3/11 def f(score):
if score > 90:
print("A")
elif score > 80:
print("B")
elif score > 70:
print("C")
elif score > 60:
print("D")
else:
print("E") f(83) # 输出结果: B

4.以上选择结构的嵌套

示例:  3数比较大小

 # __author__ = "wyb"
# date: 2018/2/24 # 输入三个整数,比较大小按从小到大的顺序输出 number1 = int(input(">>>"))
number2 = int(input(">>>"))
number3 = int(input(">>>")) if number1 < number2:
if number2 < number3:
print(number1, number2, number3)
elif number3 < number1:
print(number3, number1, number2)
else:
print(number1, number3, number2)
else:
if number1 < number3:
print(number2, number1, number3)
elif number2 < number3:
print(number2, number3, number1)
else:
print(number3, number2, number1)

注: 使用选择结构的嵌套一定要注意严格控制好不同级别的代码缩进量,因为不同的代码缩进量绝对了不同代码块的从属关系以及业务逻辑是否能很好地实现。

二、while循环

1.while循环语法

(1)普通的while循环

 while 条件表达式:
循环体

当条件表达式等价为True时循环体一直运行,等价为False时直接退出循环体

(2)带else子句的while循环

 while 条件表达式:
循环体
else:
代码块

上述循环中的else:

如果循环是从break终止,就跳出循环,不执行else中的代码块,如果循环正常结束就执行else中的代码块,for循环中的else

也是一样的原理

2.while循环示例

死循环:

 while True:
print("我爱你啊")

写while循环要尽量避免上述的死循环,可以在while后面的条件表达式中设置退出条件或者在循环体中设置break语句来退出循环体

登陆验证:

 # __author__ = 'wyb'
# date: 2018/3/11 user = "wyb"
pwd = ""
counter = 0
while counter < 3: # counter == 3 时退出循环体并执行else子句
# 输入用户名及密码:
username = input("Username:")
password = input("Password:")
# 用户名及密码正确:
if username == user and password == pwd:
print("Welcome %s login...." % user)
break # 跳出,中断
# 用户名及密码有任一项不正确或都不正确:
else:
print("Invalid username or password !")
counter += 1
# counter == 3 时用户选择是否继续
if counter == 3:
keep_going_choice = input("还想玩么?[y/n]")
if keep_going_choice == "y":
counter = 0 else:
print("要不要脸,臭流氓啊,小虎。")

三、for循环

1.for循环语法

(1)普通for循环

 for 取值 in 序列或迭代对象:
循环体

枚举或遍历序列中的每一个值,或迭代对象中所有元素

(2)带else子句的for循环

 for 取值 in 序列或迭代对象:
循环体
else:
代码块

上述循环中的else:

如果循环是从break终止,就跳出循环,不执行else中的代码块,如果循环正常结束就执行else中的代码块,while循环中的else

也是一样的原理

2.range函数

语法:  range(end)或range(start, end)或range(start, end, step)

range函数根据给定的参数产生一系列整数,返回一个range对象,range对象类似于生成器,生成器利用了堕性计算的机制,不会一次性计算出所有的值,而是用多少就算多少。range函数一般都是与for循环连用。

start->起始值(包括,缺省时默认为0)

end->终止值(不包括,必须有的参数)

step->步长(默认为1)

 # range函数示例
for i in range(10):
print(i, end=' ')
print() for i in range(3, 9):
print(i, end=' ')
print() for i in range(1, 10, 2):
print(i, end=' ')
print() for i in range(10, 0, -1):
print(i, end=' ')
print() for i in range(10, 0, -2):
print(i, end=' ')
print()
# 输出结果:
# 0 1 2 3 4 5 6 7 8 9
# 3 4 5 6 7 8
# 1 3 5 7 9
# 10 9 8 7 6 5 4 3 2 1
# 10 8 6 4 2

3.for循环示例

遍历列表输出所有元素:

 mylist = [1, 'wyb', 'k', 666]
for item in mylist:
print(item, end=" ")
else:
print("正常结束") # 输出结果: 1 wyb k 666 正常结束

求100以内的所有奇数的和(2500):

 # 求100以内所有奇数的和(2500):
sum_odd = 0
for i in range(1, 100, 2):
sum_odd += i
else:
print(sum_odd)

四、循环结构综述

1.while循环和for循环

关于while循环和for循环,while循环一般用于循环次数难以确定的情况下,当然也可以用于循环次数确定的情况,for循环一般用于循环次数确定的情况,尤其适用于

枚举或遍历序列或迭代对象中每一个元素的情况下,编程中建议多使用for循环,因为使用for循环可以对循环的起始和终止看的更清楚

2.循环结构的嵌套

另外相同或不同的循环结构之间也可以互相嵌套,也可以和选择结构嵌套使用,实现更复杂的逻辑

示例:

 # __author__ = "wyb"
# date: 2018/3/11
# 交换运算符: x, y = y, x 直接交换两个变量的内容无需用到中间变量 # 实现从小到大排序
mylist = [4, 0, 3, -13, 5, 8, 31]
print("before sort:")
print(mylist) len_list = len(mylist)
for i in range(0, len_list-1):
for j in range(i+1, len_list-1):
if mylist[i] > mylist[j]:
mylist[i], mylist[j] = mylist[j], mylist[i] print("after sort:")
print(mylist)

3.循环结构的优化

(1)为优化程序以获得更高的效率和运行速度,在编写循环语句时,应尽量减少循环体内部不必要的计算,将与循环变量无关的代码尽量移到循环之外。对于使用了

多层循环嵌套的情况下,应尽量减少内层循环不必要的计算,尽可能地将循环往外提。

比如在以下的代码中,第二种明显比第一种的运行效率更高:

 # __author__ = "wyb"
# date: 2018/3/11 import time
digits = [1, 2, 3, 4] result = []
start = time.time()
for v in range(1000):
for i in digits:
for j in digits:
for k in digits:
result.append(i*100+j*10+k)
print(time.time()-start)
print(result)
 # __author__ = "wyb"
# date: 2018/3/11 import time
digits = [1, 2, 3, 4] result = []
start = time.time()
for v in range(1000):
for i in digits:
i = i * 100
for j in digits:
j = j * 10
for k in digits:
result.append(i+j+k)
print(time.time()-start)
print(result)

(2)在循环中尽量引用局部变量,因为局部变量的查询和访问速度比全局变量稍微快一点,另外在使用模块中的方法时可以通过将其转换成局部变量来提高运行速度

示例:

 # __author__ = "wyb"
# date: 2018/3/11 import time
import math start = time.time()
for i in range(100000):
math.sin(i)
print("Time Used:", time.time()-start) loc_sin = math.sin
start = time.time()
for i in range(100000):
loc_sin(i)
print("Time Used:", time.time()-start)

五、break和continue语句

break -> 提前结束整个循环

continue -> 终止本次循环忽略continue语句之后的所有语句直接回到循环的顶端,开始新的一次循环

示例:

 # __author__ = 'wyb'
# date: 2018/3/11 exit_flag = False for i in range(10):
if i < 5:
continue
print(i)
for j in range(10):
print("layer2", j)
if j == 6:
exit_flag = True
break
if exit_flag:
break

break与continue的区别:

break用于完全结束一个循环,直接跳出循环体执行循环体后面的语句

而continue和break有点类似,区别在于continue只是终止本次循环,接着还会执行后面的循环,break则完全终止循环

python的分支循环的更多相关文章

  1. Python入门-分支循环结构

    编写代码的过程中,除了基本的变量,数据类型,在实际开发中,大量代码是根据判断条件,进而选择不同的的向前运行方式. 这些向前的运行方式基本分为两种:分支结构,循环结构 1.分支结构 if单分支结构 # ...

  2. 一文了解Python中的循环(for while break continue 嵌套循环...)

    循环 目标 程序的三大流程 while 循环基本使用 break 和 continue while 循环嵌套 01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行 ...

  3. python中的循环以及,continue和break的使用

    循环 目标 程序的三大流程 while 循环基本使用 break 和 continue while 循环嵌套 01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行 ...

  4. python基础之循环结构以及列表

    python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...

  5. Python之 for循环\while循环

    list或tuple可以表示一个有序集合.如果我们想依次访问一个list中的每一个元素呢?比如 list: L = ['Adam', 'Lisa', 'Bart'] print L[0] print ...

  6. Python进阶05 循环设计

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在"循环"一节,我们已经讨论了Python基本的循环语法.这一 ...

  7. 第五篇:python基础之循环结构以及列表

    python基础之循环结构以及列表   python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...

  8. [Python笔记][第三章Python选择与循环]

    1月28日学习 Python选择与循环 选择结构 多分枝选择结构 if 表达式 1: 语句块 1 elif 表达式 2: 语句块 2 elif 表达式 3: 语句块 3 ... else : 语句块 ...

  9. Python数据结构与循环语句

    # Python数据结构与循环语句:   首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟.  关于买书: 学会python之后,才需要买书 ...

随机推荐

  1. STM32串口配置步骤

    串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能, GPIO 时钟使能2) 串口复位3) GPIO 端口模式设置4) 串口参数初始化5) 开启中断并且初始化 NVIC(如果需要开启中断才 ...

  2. UVA 10815:Andy's First Dictionary(STL)

    题意:给出一段英文,里面包含一些单词,空格和标点,单词不区分大小写,默认都为小写.按照字典序输出这些单词(这些单词不能有重复,字母全部变成小写) stringstream:包含在头文件#include ...

  3. ppt罗列项排版

    关于罗列项的排版(1,....2,......3,......4,........)

  4. ubuntu 14.04安装OVS虚拟OpenFlow交换机配置总结

    一.安装OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...

  5. greasemonkey修改网页url

    // ==UserScript== // @name JSHE_ModifyFunction // @namespace jshe // @include http://localhost/* // ...

  6. chrome浏览器network面板出现:Provisional headers are shown 提示

    一般来说,如果看到这个提示,说明这个请求并没有发送出去. 具体原因有多种: 请求被某些扩展如 Adblock 拦截了 请求被墙了 走本地缓存或者 dataurl 的请求 client发送请求后,由于各 ...

  7. C# ObjectArx AutoCAD二次开发(转帖)

    http://www.cnblogs.com/houlinbo/p/3325898.html 1.开发基本资料准备 用Vs2010进行Autocad 2010开发,首先下载ObjectArx 2010 ...

  8. [BZOJ5249][九省联考2018]IIIDX(线段树)

    5249: [2018多省省队联测]IIIDX Time Limit: 40 Sec  Memory Limit: 512 MBSubmit: 32  Solved: 17[Submit][Statu ...

  9. asp.net Repeater使用例子,包括分页

    <style type="text/css">    .tab{border-collapse:collapse; margin:0 auto;}    .tab th ...

  10. each与list的用法(PHP学习)

    1.each的用法 先看API array each ( array &$array ) api里是这么描述的:each — 返回数组中当前的键/值对并将数组指针向前移动一步 我们先来看看返回 ...