while 语句
作用:
根据一定条件,重复的执行一条语句或多条语句
语法:
while 真值表达式:
语句块1...
else:
语句块2
说明:
1.先执行真值表达式,测试布尔值为Ture或False
2.如果真值表达式的测试值为Ture,则执行语句块1,然后再返回到第一步重复进行测试
3.如果真值表达式的测试值为False,则执行else子句中的语句块2,然后结束此while语句的执行,如果没有else子句,则直接结束while语句的执行
4.else子句部分可以省略(同if语句类似)
示例:
i=int(input("请输入打印行数:"))
n=1
while n<=i:
print("hello",n)
n+=1
打印(1~20)的整数
n=1
while n <= 20:
print(n)
n+=1
练习:
.输入一个整数(代表树干的高度)
打印如下一颗圣诞树
输入:2
*
***
*
*
输入:3
*
***
*****
*
*
*
g=int(input("请输入一个整数:"))
i=1
p=1
while i <= g*2-1:
r="*"*i
print(r.center(g*2-1," "))
i+=2
while p<=g:
d="*"
print(d.center(g*2-1," "))
p+=1
.打印如下圣诞树:
输入:3
1
222
33333
*
*
*
r=int(input("请输入一个整数:"))
i=1
a=1
e=1
while i <= r*2-1:
d=(str(a))*i
print(d.center(r*2-1))
i+=2
a+=1
while e <= r:
z="*"
print(z.center(r*2-1))
e+=1
打印1~20的整数,每行五个,打印四行,如:
12345
678910
a=1
while a <=20:
print(a,end=" ")
if a%5==0:
print()
a+=1
.用while语句打印10~1之间的整数
d=10
while d!=0:
print(d)
d-=1
.用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印相应记得三角形
*
**
***
****
r=int(input("输入数:"))
e=1
while e<=r:
print("*"*e)
e+=1
whlie 语句的注意事项:
1.要控制循环的真值表达式的值来防止死循环
2.通常用真值表达式中的循环变量来控制循环条件
3.通常在循环语句块内需要改变循环变量来看控制循环的次数和变量的方向
while 语句嵌套
while 语句本身是语句,和其他语句一样可以嵌套在其他复合语句中(如:if语句,while语句,for语句...的内部)
while 语句嵌套示意:
while 真值表达式:
...
while 真值表达式2:
....
else:
....
else:
....
示例:
a=1
while a<=20:
i=1
while i<=20:
print(i,end=" ")
i+=1
else :
print()
a+=1
.输入一个数,打印指定宽度的正方式:
如:
请输入: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
a=int(input("请输入一个数:"))
b=1
print("请输入:",a)
while b<=a:
c=1
while c<=a:
print(c,end=" ")
c+=1
else :
print()
b+=1
break 语句:
作用:
用于循环语句(while,for语句)中,用来终止当前循环语句的执行
说明:
1.当break语句执行后,此循环语句break之后的语句将不再执行
2.break 语句通常和if 语句组合使用
3.break语句终止循环时,循环语句的else子句将不再会被执行
4.break语句只能终止当前循环的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
5.break语句只能循环语句(while或for语句)
示例:
i=1
while i< 10:
print("循环开始时的i=",i)
if i==5:
break
print("循环结束时的i=",i)
i+=1
else:
print("结束")
print("程序即将退出,i=",i)
a=int(input("请输入一个数:"))
b=1
print("请输入:",a)
while b<=a:
c=1
while c<=a:
print(c,end=" ")
if c==4:
break
c+=1
else :
print()
b+=1
死循环 death loop
1.死循环是指循环条件一直成立的循环
2.死循环通常用break语句来终止循环
3.死循环的else子句永远不会执行
示例:
用input输入一些文字,当输入三个星号时代表输入结束
打印您刚输入的所有文字(换行是自动加上换行符)
s=" " #先创建一个变量,用来保存字符串
while True:
a=input("请输入文字(***结束):")
if a=="***":
break
s+=a+"\n"
print("您刚才输入的是:")
print(s)
练习
用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印相应得三角形
1.打印如下结果
*
**
***
a=int(input("请输入一个整数:"))
t=1
while t <= a:
print("*"*t)
t+=1
2.打印如下结果
*
**
***
b=int(input("请输入一个整数:"))
a=int(b)
while b>=1:
d="*"*b
print("%%%ds" %a %d)
b-=1
3.打印如下结果
***
**
*
c=int(input("请输入一个整数:"))
while c >= 1:
print("*"*c)
c-=1
4.打印如下结果
***
**
*
s=int(input("请输入一个整数:"))
h=1
while s>=h:
p="*"*h
print("%%%ds" %s %p) #此处%为3个,是因为要转义
h+=1
2.写一个程序,输入一个开始的整数值用变量begin绑定
输入一个结束的整数值用变量eng绑定
打印从begin到end(不包含end)的每个整数(打印在一行内)
如:
请输入开始值:8
请输入结束值:30
打印结果:
8 9 10...28 29 30
附加思考:
如何实现每5个数字打印在一行
begin=int(input("请输入一个开始的整数值:"))
end=int(input("请输入一个结束整数值:"))
print("开始值为:",begin)
print("结束值为:",end)
i=1
while begin<=end:
print(begin,end=" ")
if i%5==0:
print()
begin+=1
i+=1
3.用while循环生成一个字符串:
'ABCD...XYZ'并打印
'AcBbCcDd...XxYyZz'并打印
提示:
用chr和ord函数
ui=65
while ui<=90:
print(chr(ui),end=" ")
ui+=1
ui=65
op=97
while ui<=90 and op<= 122:
print(chr(ui)+chr(op) ,end=" ")
ui+=1
op+=1