Python学习系列之循环(十)

一、循环概念

循环:
  反复做同一件事情的情况,成为循环
循环结构流程图:

 二、循环的分类:

  • while
  • for-in

三、while循环

while循环语法结构:
 while 条件表达式:
  条件执行体(循环体)


选择结构的if与循环结构的while的区别:
if是判断一次,条件为True执行一次
while是判断N+1次,条件为True执行N次

举例:

#while循环,输出1-10之间的正整数
a=1
while a<=10:
    print(a)
    a+=1

  执行结果如下:

 练习1:输出0-4志坚正整数的累加和

#0-4的累加和
a=0
sum=0
while a<=4:
    sum+=a
    a+=1
print('和为:',sum)

  执行结果为:

练习2:计算1-100之间偶数的和

#计算1-100之间偶数的和
a=1
sum=0
while a<=100:
if a%2==0: #可以写成if not bool(a%2):
sum+=a
a+=1

print('和为:',sum)

  执行结果如下:

 练习3:计算1-100之间奇数的和

#计算1-100之间奇数的和
a=1
sum=0
while a<=100:
if bool(a%2):
sum+=a
a+=1
print('和为:',sum)

  执行结果如下:

四、for-in循环

for-in循环

  • in表达从(字符串、序列等)中依次取值,又称为遍历
  • for-in遍历的对象必须是可迭代对象

for-in的语法结构:
for自定义的变量 in 可迭代对象:
  循环体


for-in的执行图:

  *循环体内不需要访问自定义变量,可以将自定义变量替代为下划线

举例:

举例1:输出“Pyhton”中的每个字符

#for-in循环
for item in 'Python':
    print(item)

  执行结果如下:

 举例2:输出range函数中的所有值

for i in range(10):
    print(i)

  执行结果如下:

举例3:用'_'代替自定义变量

#如果在循环体中,不需要自定义变量,可以将自定义变量可以用'_'代替
for _ in range(3):
    print('ABC')

  执行结果如下:

  解析:执行了3次print方法

举例4:计算1-100之间偶数的和

#计算1-100之间偶数的和
sum=0
for i in range(1,101):
if i%2==0:
sum+=i
print(sum)

  执行结果如下:

 练习:要求输出100-999之间的水仙花数 举例:153=3*3*3+5*5*5+1*1*1

for item in range(100,1000):
    ge=item%10  #个位数
    shi=item//10%10 #十位
    bai=item//100
    #print(bai,shi,ge)
    #判断
    if ge**3+shi**3+bai**3==item:
        print(item)

  执行结果如下:

五、break语句

break语句:

  • 用于结束循环结构,通常与分支结构if一起使用

举例:验证密码输入3次,当密码输入正确时使用break停止循环

#break退出循环
for item in range(3):
    pwd=input('请输入密码:')
    if pwd=='8888':
        print('密码正确')
        break
    else:
        print('密码错误,请重新输入')

  执行结果如下:

 解析:当密码输入不正确时,会进入下一轮循环,当密码正确时break跳出循环

 本例还可以用while来写:

a=0
while a<3:
    pwd=input('请输入密码:')
    if pwd=='8888':
        print('密码正确')
        break
    else:
        print('密码错误,请重新输入')
    a+=1

  结果同上

六、流程控制语句continue

continue语句

  • 用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用

举例:要求输出1到50之间所有5的倍数,即和5的余数为0的都是5的倍数,与5的余数不为0的数不是5的倍数

#要求输出1到50之间所有5的倍数,即和5的余数为0的都是5的倍数,与5的余数不为0的数不是5的倍数
for item in range(1,51):
    if item%5==0:
        print(item)

  执行结果如下:

  

下面,我们使用continue语句来重写上面的例子:

#使用conitnue语句
for item in range(1,51):
    if item%5!=0:
        continue
    print(item)

  执行结果如下:

七、else语句

else语句:
与else语句配合使用有三种情况
分别是:
if .....:
  ...
else:
  ...
if表达式不成立时,执行else

while ......:
  ...
else:
  ...

for ......:
  ...
else:
  ...
没有碰到break时执行else

举例:模拟ATM机取款输入密码,密码最多输入3次,输入错误提示密码错误,请重新输入,超过3次则提示3次密码均输入错误。

使用if-else:

for item in range(3):
    pwd=input('请输入密码:')
    if pwd=='8888':
        print('密码正确')
        break
    else:
        print('密码不正确')

else:
    print('对不起,三次密码均输入错误')

  执行结果如下:

 使用while-else编写:

a=0
while a<3:
    pwd=input('请输入密码:')
    if pwd=='8888':
        print('密码正确')
        break
    else:
        print('密码不正确')
    a+=1
else:
    print('对不起,三次密码均输入错误')

  执行结果如下:

八、嵌套循环

嵌套循环:
循环结构中又嵌套了另外的完整的循环结构,其中内存循环作为外层循环的循环体执行

举例:

输出一个三行四列的矩形
#输出一个三行四列的矩形
for i in range(1,4):
    for j in range(1,5):
        print('*',end='	') #不换行输出
    print() #打行

  执行结果如下:

练习:输出99乘法表

#输出99乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print(i,'*',j,'=',i*j,end='	')
    print()

  执行结果如下:

九、二重循环中的break和continue

二重循环中的break和continue用于控制本层循环

break举例:当数据与2取余时,跳出循环

'''流程控制语句break和continue在二重循环中的使用'''
for i in range(5):
    for j in range(1,11):
        if j%2==0:
            break
        print(j)

  执行结果如下:

 解析:外层循环共执行了5次,内存循环中当j为1时,跳出循环会到外层循环,外层循环第二次执行时,内存循环执行二次,j取第一个即1,又会跳出循环,所以结果为5个1,即内层循环每次执行1次就会跳出循环,所以j的值一直是1

continue举例:当数据与2取余时,继续循环

for i in range(5):
    for j in range(1,11):
        if j%2==0:
            continue
        print(j,end='	')
    print()

  执行结果如下:

 解析:共执行5*10=50次,当条件j%2==0不满足时,打印j,当条件j%2==0满足时,则不打印j,继续内层循环,在1-10这10个整数中,不满足%2==0的数据是1,3,5,7,9,外层循环5次,所以输出5行1,3,5,7,9

原文地址:https://www.cnblogs.com/wx170119/p/14030405.html