while 语句
作用:
根据一定条件,重复的执行一条语句或多条语句
语法:
while 真值表达式:
语句块1...
else:
语句块2
说明:
1. 先执行真值表达式,测试布尔值为 True 或 False
2. 如果真值表达式的测试值为True,则执行语句1,然后再返回到第1步重复进行测试
3. 如果真值表达式的测试值为False,则执行else子句中的语句块2,然后结束此while语句的执行。如果没有else子句,则直接结束while语句的执行
4. else子句部分可以省略(同if语句类似)
练习:
1. 写程序输入一个整数n:
打印n以内的全部大于0的偶数(不包含n)
2. 打印 从零开始的浮点数, 每个数增加0.5,打印出10以内所有这样的数
3. 打印1~20的整数,打印在一行显示,每个数字之间用一个空格分隔:
1 2 3 4 5 6 7 .... 18 19 20
提示: print(n, end=' ')
4. 打印1~20的整数,每行5个数,打印四行,如:
1 2 3 4 5
6 7 8 9 10
...
提示需要嵌入if语句来打印换行符'\n'
5. 用while 语句打印 10~1之间的整数
6. 用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印出相应的三角形;
如:
请输入三角形宽度: 4
打印结果如下:
*
**
***
****
while 语句的注意事项:
1. 要控制循环的真值表达式的值来防止死循环
2. 通常用真值表达式中的循环变量来控制循环条件
3. 通常在循环语句块内需要改变循环变量来控制循环的次数和变量的走向
while 语句嵌套
while语句本身是语句,和其它语句一样可以嵌套在其它复合语句中(如:if语句,while语句,for语句...的内部)
while 语句嵌套示意:
while 真值表达式:
....
while 真值表达式2:
....
else:
....
else:
....
while 嵌套示例:
打印1~20的整数,打印在一行显示,每个数字之间用一个空格分隔:
1 2 3 4 5 6 7 .... 18 19 20
打印10
练习:
输入一个数,打印指定宽度的正方形:
如:
请输入:5
打印正方形如下:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
如:
请输入:3
打印正方形如下:
1 2 3
1 2 3
1 2 3
break 语句:
作用:
用于循环语句(while, for语句)中,用来终止当前循环语句的执行
说明:
1. 当break语句执行后,此循环语句break之后的语句将不再执行
2. break语句通常和if语句组合使用
3. break语句终止循环时,循环语句的else子句将不会被执行
4. break语句只能终止当前循环的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
5. break 语句只能在循环语句(while或 for语句)内部使用
死循环 death loop:
1. 死循环是指循环条件一直成立的循环
2. 死循环通常用break语句来终止循环
3. 死循环的else子句永远不会执行
示例:
用input输入一些文字,当输入三个星号时代表输入结束
打印您刚输入的所有文字(换行时自动加上换行符)
练习:
1. 用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印出相应的三角形;
如:
请输入三角形宽度: 4
打印结果如下:
*
**
***
****
2. 再打印:
*
**
***
****
3. 再打印:
****
***
**
*
4. 再打印:
****
***
**
*
2. 写一个程序。
输入一个开始的整数值用变量begin绑定
输入一个结束的整数值用变量end绑定
打印从begin到end(不包含end)的每个整数(打印在一行内)
如:
请输入开始值: 8
请输入结束值: 30
打印结果:
8 9 10 11 12 ...... 28 29 30
附加思考:
如何实现每5个数字打印在一行内?
3.用while 循环生成如下字符串:
1. 生成'ABCDEFG...... XYZ' 并打印
2. 生成'AaBbCcDdEeFf.....XxYyZz' 并打印
提示:
用chr和ord函数