一、while循环
1. 程序执行的流程
程序执行流程一定是从上往下执行的, 根据条件判断进行选择分支代码去执行, 循环会让特定的代码重复执行
2. while 循环语句
while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
基本格式
初始化值
while 条件判断: # 条件判断可以是任何表达式,值均为True。当条件判断为False时循环结束。
语句体 # 语句体可以是单个语句或语句块。
条件控制
案例 "一句话" 说10遍
i = 1 # 设置初始值
while i <= 10:
print ("一句话")
i += 1 # i+ = 1相当于i = i+1
3. 循环中的计算
案例1 求1+2+...+100 的和
# 需求 1+2...+100累加求和
i = 1
sum = 0
while i <=100:
sum += i
i += 1
print(sum)
结果: 5050
案例2 求1+2+...+100 的偶数和
# 需求 1+2...+100累加求和
i = 1
sum = 0
while i <=100:
if i % 2 ==0: #判断偶数
sum += i # 注意缩进问题
i += 1
print(sum)
结果: 2550
4. 无限循环
如果条件判断语句永远为 true,循环将会无限的执行下去 ,
格式如下
while True:
print("无限循环")
案例:
value=1
while value > 0: # 条件判断一直成立
print("语句体")
结果: 语句体
语句体
...
5. while...else
python 中,while...else 在循环条件为 False 时, 会执行 else 语句块
value = 0
while value <= 2:
print(value)
value =value + 1
else:
print("while条件判断返回了false时执行")
结果: 0
1
2
while条件判断返回了false时执行
6. 当while 循环体中只有一条语句,你可以将该语句与while写在同一行中, 和 if 语句一样
flag = 1
while (flag): print('同一行执行') # 1为True 0位False
结果: 同一行执行
同一行执行
同一行执行
...
7. while循环嵌套
基本格式
while 条件1:
条件1 满足要执行的循环体
while 条件2:
条件2 满足要执行的循环体
处理条件2
处理条件1
案例1 用*符号输出一个直角三角形(用循环嵌套完成)
i = 1
while i <= 5:
j = 1 # while内循环定义变量
while j<=i:
print("*",end="") # 内循环控制每行输出
j += 1
print("") #每行输出后换行作用
i += 1 # 外循环while条件控制
结果:
*
**
***
****
*****
案例2 循环嵌套完成乘法表
i = 1
while i <= 9:
j = 1
while j<=i:
print("%d * %d = %d" % (j,i, i*j), end="\t") # 乘法表输出部分 \t制表符对齐
j += 1
print("") #每行输出后换行作用
i += 1 # 外循环while条件控制
结果:
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
...
二、for循环
1. for循环可以遍历任何序列的数据,如一个列表或者一个字符串。
语法格式:
for i in value
print( i )
案例1
for letter in 'java':
print('当前字母为: ', letter)
结果:当前字母为 : j
a
v
a
案例2
brands = ['华为', '三星', '苹果']
for brand in brands:
print ('手机品牌为: ', brand)
结果: 手机品牌为: 华为
手机品牌为: 三星
手机品牌为: 苹果
案例3 还可以通过角标的方式遍历
brands = ['华为', '三星', '苹果']
for index in range(len(brands)):
print ('手机品牌为 :', brands[index])
结果: 手机品牌为: 华为
手机品牌为: 三星
手机品牌为: 苹果
2. for...else...语句
for中的语句 和 普通的一样
else 中的语句会在循环正常执行完(for 不是通过 break 跳出而中断的)的情况下执行,while … else 是一样的。
for num in range(1,10): # 迭代 1 到 10 之间的数字
for i in range(2,num): # 根据因子迭代
if num%i == 0: # 确定第一个因子
j=num/i # 求第二个因子
print('%d 等于 %d * %d' % (num,i,j))
break # 跳出当前循环
else: # 循环的 else 的内容
print (num, '是一个质数')
结果:
1 是一个质数
2 是一个质数
3 是一个质数
4 等于 2 * 2
5 是一个质数
6 等于 2 * 3
7 是一个质数
8 等于 2 * 4
9 等于 3 * 3