内容正文:
《Python应用程序设计》
Python while循环结构
计算机教科组
1
循环结构
循环结构允许一条或多条语句在一定条件的控制下重复执行。重复执行的语句块称为循环体。
Python语言的循环结构包括两种:遍历循环(for循环)和条件循环(while循环,或者叫无限循环)。其中遍历循环由for保留字建立,用来一次访问元素组中的每一个元素;条件循环由while保留字建立,依据是否满足特定条件决定是否结束循环。
while循环
执行逻辑:
条件表达式为True,则执行语句块(也称为循环体)。
条件表达式为False,则执行语句a。
while循环经典例题
[例1]完成5遍“computer"输出
i = 1
while i<=5:
print("第",i,"遍computer")
i += 1
print("循环已结束")
执行顺序是:
①i赋值为1。
②判断循环条件i<=5是否为真,成立执行第③;不成立跳到第⑥。
③打印第i遍“computer"。
④i自增1。
⑤回到第②。
⑥打印“循环已结束
while循环经典例题
[例2]使用 while语句循环求1+2+3+...+100的和。
sum = 0
i = 1
while i<=100:
sum = sum + i #完成累加
i = i + 1
print("1+2+3+...+100="+str(sum))
运行分析:
当i=1时,i<=100成立,sum=0+1;
当i=2时,i<=100成立,sum=0+1+2;
当i=3时,i<=100成立,sum=0+1+2+3;
……
当i=100时,i<=100成立,sum=0+1+2+3+……+100;
当i=101时,i<=100不成立,则退出循环。
sum = sum + i
i = i + 1
以上两行代码互换可以吗?互换是什么结果
while循环经典例题
[例3]用while循环编写程序,利用循环求1-2+3-4+5…+99-100的值
方法一:判断每一项是奇数还是偶数,奇数做加法,偶数做减法。
i=1 #初始值
s=0 #接收数据的和
while i<=100:
if i%2==1:
s=s+i
else:
s=s-i
i+=1
print(s)
while循环经典例题
[例3]用while循环编写程序,利用循环求1-2+3-4+5…+99-100的值
方法二:符号交替变化
i=1 #初始值
s=0 #接收数据的和
f=1 #控制正负号
while i<=100:
s += i * f
f = -f
i+=1
print(s)
while循环经典例题
[例4].已知下列关系
1!=1
2!=1*2
3!=1*2*3
4!=1*2*3*4
...
请用while循环计算10!
j=1 #表示数字的乘积结果
i=1
while i<=10:
j=j*i
i=i+1
print(j)
代码分析:
i=1,i<=10成立,j=1*1,i=2
i=2,i<=10成立,j=1*1*2,i=3
i=3,i<=10成立,j=1*1*2*3,i=4
...
i=10,i<=10成立,j=1*1*2*3*4*5*6*7*8*9*10,i=11
i=11,i<=10不成立,循环结束
while循环经典例题
[例5]输入一行字符,用while循环分别统计出其中英文字母、空格、数字和其他字符的个数
s=input("请输入一行字符:")
i=0 #起始索引
zm=0 #字母的个数
sz=0 #数字的个数
kg=0 #空格的个数
qt=0 #其他字符的个数
while i<len(s): #只要是序列,这里都只能是i<len(s)
if s[i].isalpha(): #实操需要加.encode('utf-8')
zm=zm+1
elif s[i].isdigit():
sz=sz+1
elif s[i].isspace():
kg=kg+1
else:
qt=qt+1
i=i+1
print("字母的个数为:",zm)
print("数字的个数为:",sz)
print("空格的个数为:",kg)
print("其他字符的个数为:",qt)
【思考题】
1.如何将英文字母、空格、数字和其他字符的个数存放到字典?
请统计大写字母、小写字母、数字和其他字符的个数,并存放到字典。
while循环经典例题
[例6]用while循环编写程序,找出7的倍数中十位数为2的所有3位数