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)