while循环语句
练习:
打印 1 + 2 + 3 + 4 + .. + 10 = 55
1 循环 1 - 10
2 1 - 10之间:打印数字 +
3 10之后, 打印 =
4 计算1加到10的结果并打印
注意:以上结果都需要打印到1行
‘’’
x = 1
total_num = 0
while x < 11:
print(x, end=’ ‘)
if x < 10:
print(’+’, end=’ ‘)
else: # x = 10
print(’=’, end=’ ')
total_num += x
x += 1
else: # 真值表达式不成立时执行
print(total_num)
打印1-21之间,每5个数一行,共4行
x = 1
while x < 21:
print(’%3d’ % x, end=’ ‘) # end=’’ 不换行
print(x, end=’\t’) # end=’’ 不换行
if x % 5 == 0:
print() # 换行 end=’\n’
x += 1
2 while循环嵌套
while语句中套用while循环
说明:
明确外层循环与内层循环分别控制行/列
总结:
外层循环执行1次,内层循环执行1圈
3 死循环
1 真值表达式永远成立
while死循环
x = 1
while x < 5: # x不变,真值表达式永远成立
print(x)
while True: # 推荐
print(1)
while 1: # 不推荐(True作为数值为1)
print(1)
问题: 永远执行
措施: 增加终止条件,中断循环
x = 1
while x < 10:
if x == 4:
break # 终止当前while循环(之后的语句不执行)
print(x)
x += 1
else:
print(‘程序执行结束’)
x = 1
while x < 3:
y = 1
while y < 3:
if y == 2:
break # 终止内层循环while
print(y)
y += 1
x += 1
x = 0
while x < 3:
x += 1
y = 1
while y < 3:
print(y)
y += 1
else: # while的真值表表达式不满足时执行
break # 终止外层循环(内层循环不满足结束了)
break # 终止外层循环
x += 1 # break语句之后的语句不执行
x = 0
while x < 10:
x += 1
if x == 4:
continue # 跳过本次while循环,继续下一次循环(之后的语句不执行)
# print(‘continue执行了’) # continue之后的语句不执行
print(x)
x = 1
while x < 3:
y = 0
while y < 3:
y += 1
if y == 2:
continue # 跳过本次循环继续下一次循环
print(y)
x += 1
x = 0
while x < 3:
x += 1
y = 0
while y < 2:
y += 1
print(y)
else:
continue # 无意义
2 写法:
while True:
while 1:
措施:
break语句
作用:终止当前的循环
说明:
1 break之后的语句不再执行
2 break执行后,while循环中的else不执行
3 再循环嵌套中,break只能终止当前的循环
continue语句
作用:跳过本次循环,继续下一次循环
说明:
continue之后的语句不再执行
注意:
在while循环中,注意变化点放在continue之前
代码:
while语句
顺序打印
i = 1
while i <= 20:
print(i, end=’ ')
i += 3
倒序打印
i = 19
while i >= 1:
print(i, end=’ ')
i -= 3
打印1-21之间,每5个数一行,共4行
x = 1
while x < 21:print(’%3d’ % x, end=’ ‘) # end=’’ 不换行
print(x, end=’\t’) # end=’’ 不换行
if x % 5 == 0:
print() # 换行 end=’\n’
x += 1
‘’’ 打印星星
* * * *
* * * *
* * * *
* * * *
‘’’
x = 0
while x < 4:
print(’*’, end=’ ')
x += 1
else:
print()
x = 0
while x < 4:
print(’*’, end=’ ')
x += 1
else:
print()
x = 0
while x < 4:
print(’*’, end=’ ')
x += 1
else:
print()
x = 0
while x < 4:
print(’*’, end=’ ')
x += 1
else:
print()
分析
‘’’
1个循环控制打印4行
1个循环负责每行打印4个星星
‘’’
row = 0
while row < 4: # 控制行数[外层循环]
# print(‘第’+str(row)+‘行’, end=’ ‘)
# 打印每行的星星
x = 0
while x < 4: # 控制列数[内层循环]
print(’*’, end=’ ')
x += 1
# 每行星星打印结束后,换行
print()
row += 1
外层(控制行)执行一次,内层(控制列)执行4次
‘’’
打印 数字三角形
1
1 2
1 2 3
1 2 3 4
...
1 2 3 4 5 6 7 8 9
‘’’
row = 1
while row < 10: # 控制行
# print(row)
col = 1
while col <= row: # 控制列
print(col, end=’ ')
col += 1
print()
‘’’
打印 数字矩形(边长=4)
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
‘’’
side = int(input(‘请输入一个边长:’))
row = 1
while row <= side: # 控制行
# print(row)
col = row
while col < side + row: # 控制列[重点]
print(col, end=’ ')
col += 1
print()
row += 1
优化: 超过2位数继续从0开始(10 --> 0 11 --> 1 12 --> 2)