一、遍历循环结构for

1. for的语句结构:

for 循环变量 in 遍历对象:

       语句块

示例1

for i in 'hello':
    print(i)

#rang(),Python中的内置函数,产生一个(n,m)的整数序列,包含n但不包含m
print('-'*10)
for i in range(1,6):
    if i%2==0:
        print(i,'是偶数')

#计算1-5之间的累加和
print('-'*10)
s=0
for i in range(1,6):
    s+=i
print(s)

结果:

示例2(100-999之间的水仙花数)

'''
水仙花数
153=1*1*1+5*5*5+3*3
'''
for i in range(100,1000):
    a=i%10 #获取个位上的数字
    b=i//10%10 #获取十位上的数字
    c=i//100#获取百位上的数字
    if a**3+b**3+c**3==i:
        print(i)

结果:

2. for…else…结构

for 循环变量 in 遍历对象:

       语句块1

else:

       语句块2

循环正常执行完毕,执行else部分,若遇到非正常情况,如语句块1中含有break,则直接跳出循环,且不执行else部分。

示例:

s=0
for i in range(1,11):
    s+=i
else:
    print('1-10之间的累加和为:',s)

结果:

二、无限循环结构while

1. while的语句结构

while 表达式:

     语句块

2. while循环的四个步骤

①初始化变量

②条件判断

③语句块

④改变变量

示例1—模拟用户登陆

i=0
while i<3:
    id=input('请输入账号:')
    pwd=input('请输入密码:')
    if id=='123' and pwd=='123':
        print('登陆成功!')
        i=5 #跳出循环
    else:
        if i<2:
            print('账号或密码错误,您还有',2-i,'次机会')
        i+=1

if i==3:
    print('请五分钟后再试')

结果:

示例2—1-100的累加和

s=0
i=1
while i<=100:
    s+=i
    i+=1
print(s)

结果:

3. while…else…结构

while 表达式:

     语句块1

else:

     语句块2

示例:

s=0
i=1
while i<=100:
    s+=i
    i+=1
else:
    print(s)

结果:

三、循环嵌套打印输出长方形和三角形

示例1—长方形

for i in range(1,4):  #外层循环控制行数
    for j in range(1,5):  #内层循环控制列数
        print('*',end='')
    print()  #换行

结果:

示例2—直角三角形

for i in range(1,6):
    #*的个数与行相同,第一行,range(1,2),第二行,range(1,3)
    for j in range(1,i+1):
        print('*',end='')
    print()  # 换行

结果:

示例3—倒三角

for i in range(1,6):
    #*的个数与行的关系,第一行,range(1,6),第二行,range(1,5)
    for j in range(1,7-i):
        print('*',end='')
    print()  # 换行

结果:

示例3—等腰三角形

'''
&&&&*
&&&***
&&*****
&*******
*********
'''
for i in range(1,6):
    #&(这里代表空格)的个数与行的关系,第一行,range(1,6),第二行,range(1,5)
    for j in range(1,6-i):
        print(' ',end='')
    # *的个数与行的关系,第一行,range(1,2),第二行,range(1,4),第三行,range(1,6)
    for k in range(1,i*2):
        print('*', end='')
    print()  # 换行

结果:

四、循环嵌套打印输出菱形和空心菱形

示例1—菱形

row=eval(input('请输入菱形的行数:'))
while row%2==0: #判断行数的奇偶性,行数是偶数,重新输入
    print('重新请输入菱形的行数:')
    row = eval(input('请输入菱形的行数:'))
#输出菱形
top_row=(row+1)//2
for i in range(1,top_row+1):
    for j in range(1,top_row+1-i):
        print(' ',end='')
    for k in range(1,i*2):
        print('*', end='')
    print()  # 换行
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1):
    for j in range(1,i+1):
        print(' ', end='')
    for k in range(1, bottom_row*2-2*i+2):
        print('*', end='')
    print()  # 换行

结果:

示例2—空心菱形

row=eval(input('请输入菱形的行数:'))
while row%2==0: #判断行数的奇偶性,行数是偶数,重新输入
    print('重新请输入菱形的行数:')
    row = eval(input('请输入菱形的行数:'))
#输出菱形
top_row=(row+1)//2
for i in range(1,top_row+1):
    for j in range(1,top_row+1-i):
        print(' ',end='')
    for k in range(1,i*2):
        if k==1 or k==i*2-1:
            print('*', end='')
        else:
            print(' ', end='')
    print()  # 换行
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1):
    for j in range(1,i+1):
        print(' ', end='')
    for k in range(1, bottom_row*2-2*i+2):
        if k == 1 or k == bottom_row*2-2*i+2-1:
            print('*', end='')
        else:
            print(' ', end='')
    print()  # 换行

结果:

作者:小白studying

物联沃分享整理
物联沃-IOTWORD物联网 » Python—循环结构

发表回复