python循环结构

本文详细介绍了Python中的三种主要循环结构:for遍历循环、while无限循环以及for...else结构,还涉及了嵌套循环的概念和实例,包括遍历字符串、range函数应用、累加和计算和多种形状的打印等。
摘要由CSDN通过智能技术生成

循环结构

1.1遍历循环结构for

1.1.1遍历循环for

(1)遍历循环for的语句结构:

for  循环遍历 in  遍历对象:

         语句块

程序执行:

(2)示例:

#遍历字符串
for i in 'hello':
    print(i)
#range()函数,python中的内置函数,产生一个(n,m)的整数序列,包含n,但不包含m
for i in range(1,11):
    #print(i)
    if i%2==0:
        print(i,'是偶数')

#计算1-10之间的累加和
sum=0#用于存储累加和
for i in range(1,11):
    sum+=i#s=s+i
print(sum)

print('====100到999之间的水仙花数====')
'''
水仙花数:
个位数的三次方+十位数的三次方+百位数的三次方等于这个数
153=3*3*3+5*5*5+1*1*1
'''
for i in range(100,1000):
    a=i//100#百位上的数字
    b=i//10%10#十位上的数字
    c=i%10#个位上的数字
    if i==a**3+b**3+c**3: #a*a*a+b*b*b+c*c*c=a**3+b**3+c**3(幂运算)
        print(i)

输出结果:

1.1.2for...else...结构

(1)for...else...结构的语句结构:

for  循环变量  in  遍历对象:

    语句块1

else:

    语句块2

else只有在循环正常结束之后才会执行;

什么是不正常的--->循环当中遇到了break,就会终止循环

(2)示例:

s=0#用于存储累加和
for i in range(1,11):
    s+=i
else:
    print('累加和为:',s)#循环正常执行完毕,执行else
    

输出结果:

1.2无限循环结构while 

(1)语句结构:

while 表达式:

     语句块

  • 程序执行

1.2.1while循环的四个步骤

  1. 初始化变量
  2. 条件判断
  3. 语句块
  4. 改变变量

示例:

#(1)初始化变量
answer=input('今天是否上课?-->y/n')
while answer=='y':#(2)条件判断
    print('好好上课哦')#(3)语句块
    #(4)改变变量
    answer=input('今天是否上课?-->y/n')

#1-100之间的累加和
sum=0 #存储累加和
i=1 #(1)初始化变量
while i<=100: #(2)条件判断
    sum += i #(3)语句块
    i += 1 #(4)改变变量
print('1-100的累加和为:',sum)

结果: 

1.2.2while...else...结构

(1)语句结构

while 表达式:

    语句块1

else:

    语句块2

(2)示例:

#(1)初始化变量
i=0
while i<3:#(2)条件判断
    # (3)语句块
    user_name=input('请输入用户名:')
    pwd=input('请输入密码:')
    #登录操作
    if user_name=='小梁' and pwd=='123q':
        print('登陆成功')
        #需要改变变量,目的:退出循环
        i=5#第三行判断i<3,5<3 false 退出while循环 #(4)改变变量,用户名和密码正确的时候
    else:
        if i<2:
            print('用户名或者密码不正确,您还有',2-i,'次机会')
        i+=1#(4)改变变量 #用户户名和密码正确的时候
#单分支的判断
if i==3:#当用户名或密码三次不正确的时候,循环结束,i最大为3
    print('对不起三次均输错')

输出结果:

1.3嵌套

(1)概念:循环结构也可以相互嵌套,在一个循环结构中嵌套另一个完整的循环结构就称为嵌套循环。

注意:建议大家嵌套不要超过三层,因为在嵌套过程中,内层循环实际上是在给外层循环做语句块部分。

示例: 

#长方形的输出(三行四列)
for i in range(1,4): #外层循环控制行数,共三行
    for j in range(1,5): #内层循环控制列数,四列
        print('*',end='')
    print()#空的print语句,作用是换行

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

print('-------------倒三角形-------------')
#第一行五颗星range(1,6),第二行4颗range(1,5)...第五行一颗range(1,2)
for i in range(1,6): #5行
    for j in range(1,7-i): #5列
        print('*',end='')
    print()#内层循环执行完毕之后,空print()换行

print('-----------等腰三角形-----------')
'''
&&&&*
&&&***
&&*****
&*******
*********
'''
for i in range(1,6): #外层循环5行
    #打印倒三角形
    for j in range(1,6-i):
        print(' ',end='')
    #打印等腰三角形 第一行range(1,2) 第二行range(1,4) 第三行range(1,6)
    for m in range(1,i*2):
        print('*',end='')
    print()#当两个并列的for循环执行完毕之后,再换行

print('-----------菱形------------')
#菱形的话 奇数行可以打印出来,偶数行不行
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 m in range(1,i*2):
        print('*',end='')
    print()

'''
&&&&*
&&&***
&&*****
&*******
*********
&*******
&&*****
&&&***
&&&&*
'''
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1): #不含bottom_row+1
    #直角三角形
    for j in range(1,i+1):
        print(' ',end='')
    #倒三角
    for m in range(1,2*bottom_row-2*(i-1)): #下半部分一共四行时第一行 range(1,8) 第二行 range(1,6) 第三行range(1,4)
        print('*',end='')
    print()

print('-----------空心菱形--------------')
#菱形的话 奇数行可以打印出来,偶数行不行
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 m in range(1,i*2):
        if m==1 or m==i*2-1:
            print('*',end='')
        else:
            print(' ',end='')
    print()

'''
&&&&*
&&&***
&&*****
&*******
*********
&*******
&&*****
&&&***
&&&&*
'''
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1): #不含bottom_row+1
    #直角三角形
    for j in range(1,i+1):
        print(' ',end='')
    #倒三角
    for m in range(1,2*bottom_row-2*(i-1)): #下半部分一共四行时第一行 range(1,8) 第二行 range(1,6) 第三行range(1,4)
        if m==1 or m==2*bottom_row-2*(i-1)-1:
            print('*',end='')
        else:
            print(' ',end='')
    print()

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值