Python 基础知识 之 循环结构 + 程序跳转语句 + 空语句

1.遍历循环for

  • 注意冒号
  • 遍历字符串
for i in 'hello':
    print(i)
结果:
h
e
l
l
o
  • for循环计算
  • range()函数,Python的内置函数,产生一个[n,m] 的整数序列,包含n但不包含m⭐⭐⭐⭐⭐
# 求0-10的和
sum = 0
for n in range(0,11):
    sum+=n
    n=n+1
print("0-10的和是",sum)
结果:
55
------------------------------------------
#输出0-10的偶数
for i in range(1,11):
    if i % 2 == 0:
        print(i,"偶数")
  • 输出100到999之间的水仙花数
水仙花数:153=3*3*3+5*5*5+1*1*1
个位数的三次方+十位数的三次方+百位数的三次方
for i in range(100,1000):
    if (i % 10)**3 + (i // 10 % 10)**3 + (i // 100)**3 == i:
        print(i,"为水仙花数")

for i in range(100,1000):
    sd = i % 10
    tend = i // 10 % 10
    bai = i // 100
    if sd ** 3 + tend ** 3 + bai ** 3 == i:
        print(i, "为水仙花数")

遍历循环的扩展形式

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

2.无限循环while

  • 通过条件来决定循环体内的内容是否重复执行
  • 语法结构:
        while condition:
              statement(s)

  • 注意:这几个变量都是同一个变量

  • while使用

answer = input('今天要上课嘛?y/n:')  #(1)初始化变量
while answer == 'y':                  #(2)条件判断
    print('好好学习,天天向上')        #(3)语句块
    answer = input('今天要上课嘛?y/n:') #(4)改变变量
------------------------------------------------
# 1-100的累加和
s = 0
i = 1           #(1)初始化变量
while i <=100:  #(2)条件判断
    s += i      #(3)语句块
    i+=1        #(4)改变变量
print(s)
------------
# 改写:while...else...的扩展应用
s = 0
i = 1           #(1)初始化变量
while i <=100:  #(2)条件判断
    s += i      #(3)语句块
    i+=1        #(4)改变变量
else
    print(s)
-------------------------------------------------------
# 模拟用户登录
i = 0        #(1)初始化变量
while i<3:   #(2)条件判断
    user = input("please input your username:")
    passwd = input("please input you password:")
    if user !='kyle' and passwd != 1:  #(3)语句块
        print('您还有',2-i,'次机会')
        i+=1      #(4)改变变量
    else:
        print('succeed')
print('输入三次错误,登录失败')

3.循环嵌套

  • 输出图形(简易版)
for  i in range(1,6):
    print(" "*(5-i) + ("*-"*i).strip("-"))
for i in range(0,6):
    print(" "*i + ("*-"*(5-i)).strip("-"))
for i in range(1,6):
    print("*"*i)
for i in range(6,0,-1):
    print("*"*i)
-----------
效果:
    *
   *-*
  *-*-*
 *-*-*-*
*-*-*-*-*
*-*-*-*-*
 *-*-*-*
  *-*-*
   *-*
    *
     
*
**
***
****
*****
******
*****
****
***
**
*
  • 循环输出图形

a.长方形

for i in range(1,4):  #外循环
    for j in range(1,5): #内循环
        print('*',end='')
    print()  #空的print语句,作用换行
结果:
####
####
####

b.三角形

for i in range(1,6):
    for j in range(1,6):
        if i == j:
            print('*'*i)
---------------------------------
for i in range(1,6):
    for j in range(1,i+1):
        print('#',end='')
    print()
结果:
#
##
###
####
#####

c.倒三角形

for i in range(1,6):
    for j in range(1,7-i):
        print('#',end='')
    print()
结果:
#####
####
###
##
#

d.等腰三角型

  • 技巧:倒三角形(空值)+ 输出
for i in range(1,6):
    for j in range(1,6-i):
        print(' ',end='')
    for k in range(1,2*i):
        print('#',end='')
    print()
结果:
    #
   ###
  #####
 #######
#########

d.倒等腰三角型

  • 技巧:倒三角形(空值)+ 输出
for x in range(1,6):
    for y in range(1,x+1):
        print(" ",end='')
    for z in range(1,(10-2*x)):
        print("#",end='')
    print()
结果:
 #######
  #####
   ###
    #

d.菱形

  • 技巧:正倒等腰三角形
for i in range(1,6):
    for j in range(1,6-i):
        print(' ',end='')
    for k in range(1,2*i):
        print('#',end='')
    print()
for x in range(1,6):
    for y in range(1,x+1):
        print(" ",end='')
    for z in range(1,(10-2*x)):
        print("#",end='')
    print()
结果:
    #
   ###
  #####
 #######
#########
 #######
  #####
   ###
    #

d.树

  • 技巧:等腰三角形 + 空长方形 +实长放行
for i in range(1,7):
    for j in range(1,7-i):
        print(' ',end='')
    for k in range(1,2*i):
        print('#',end='')
    print()
for x in range(1,5):
    for y in range(1,5):
        print(" ",end='')
    for z in range(1,2):
        print("#"*3,end='')
    print()
结果:
     #
    ###
   #####
  #######
 #########
###########
    ###
    ###
    ###
    ###

d.空心菱形

  • 技巧:+判断,
for i in range(1,5):
    for j in range(1,5-i):
        print(' ',end='')
    for k in range(1,2*i):
        if  1<k<2*i-1:
            print(' ',end='')
        else:
            print("#",end='')
    print()
for x in range(1,5):
    for y in range(1,x+1):
        print(" ",end='')
    for z in range(1,8-2*x):
        if  1<z<8-2*x-1:
            print(' ',end='')
        else:
            print("#",end='')
    print()
结果:
   #
  # #
 #   #
#     #
 #   #
  # #
   #

4.break -程序跳转语句

  • 结束循环
  • 使用:
# 累加计算
s = 0
i = 0
while i<11:
    s += i
    if s > 20:
        print("累计和大于20时当前的值为:",i)
        break  
    i += 1
结果:6
-------------------------------------------
for i in 'hello':
    if i == "l":
        break
    print(i,end='')
结果:he

5.continue -程序跳转语句

  • 跳过本次循环

    -使用:
#累加求和:奇数求和
sum = 0
for i in range(101):
    if i % 2 == 0: 偶数
        continue
    sum +=i
print(sum)
结果:2500
------------------------------
#累加求和:偶数求和
sum = 0
for i in range(101):
    if i % 2 != 0: 奇数
        continue
    sum +=i
print(sum)
结果:2550

6.空语句 - pass

  • pass是python中的保留字

  • 在语法结构中只起到占位符的作用使语法结构完整,不报错

  • 一般可用在if、for、while、函数定义、类的定义中

  • 使用

-语法结构完整,不会报错
if True:
    pass

while True:
    pass

for i in range(10):
    pass

总结

  • 程序的描述方式有三种:自然语言、流程图和伪代码(代码)
  • 程序的组织结构有三种:顺序结构、选择结构(分支结构)、循环结构
  • 选择结构分单分支结构(if)、双分支结构(if....else...)和多分支结构(if....elif....else..)
  • Python3.11新特征模式匹配match...case...结构
  • 循环结构有两种:遍历循环for和无限循环while
  • if结构可以互相嵌套,循环结构也可以互相嵌套,建议最多不超过三层
  • break和continue只能用在循环结构中,break用于退出整个循环结构,continue用于结束本次循环而进入下一次循环。
  • 空语句pass起到占位符的作用,使用语法结构完整、不报错

练习

  • 模拟10086查询系统

    需求:输入1,显示当前余额;输入2,显示当前的剩余流量,单位为G
    输入3,显示当前的剩余通话,单位为分钟;输入0,退出自助查询系统。
    
    点击查看代码
    answer = input("是否想查询内容y/n:")
    while answer == "y":
        print("""
        -----------*详情*-----------
        0-退出查询系统;
        1-显示当前余额;
        2-显示剩余流量,(G)
        3- 显示当前剩余通话,单位分钟;
        ----------------------------
        """)
        num = eval(input("请输入您想查询的内容:"))
        if num == 0:
            print("谢谢使用")
            break
        elif num == 1:
            print(44)
        elif num == 2:
            print(50)
        elif num == 3:
            print(100)
        else:
            print("输入有误")
        answer = input("还想继续操作嘛y/n:")
    else:
        print("谢谢使用")
    
  • 计算闰年

    点击查看代码
      for year in range(2018,3000):
          if (year % 4 ==0) and (year % 100 != 0) or (year % 400 ==0):
              print(year)
    
  • 嵌套循环输出九九乘法表

    点击查看代码
    for i in range(1,10):
        for j in range(1,i+1):
            print("%2d *%2d = %2d"%(i,j,i*j),end='  ')
        print()
    print("-"*50)
    for x in range(9,0,-1):
        for y in range(x,0,-1):
            print("%2d *%2d = %2d"%(x,y,x*y),end=' ')
        print()
    效果:
     1 * 1 =  1  
     2 * 1 =  2   2 * 2 =  4  
     3 * 1 =  3   3 * 2 =  6   3 * 3 =  9  
     4 * 1 =  4   4 * 2 =  8   4 * 3 = 12   4 * 4 = 16  
     5 * 1 =  5   5 * 2 = 10   5 * 3 = 15   5 * 4 = 20   5 * 5 = 25  
     6 * 1 =  6   6 * 2 = 12   6 * 3 = 18   6 * 4 = 24   6 * 5 = 30   6 * 6 = 36  
     7 * 1 =  7   7 * 2 = 14   7 * 3 = 21   7 * 4 = 28   7 * 5 = 35   7 * 6 = 42   7 * 7 = 49  
     8 * 1 =  8   8 * 2 = 16   8 * 3 = 24   8 * 4 = 32   8 * 5 = 40   8 * 6 = 48   8 * 7 = 56   8 * 8 = 64  
     9 * 1 =  9   9 * 2 = 18   9 * 3 = 27   9 * 4 = 36   9 * 5 = 45   9 * 6 = 54   9 * 7 = 63   9 * 8 = 72   9 * 9 = 81  
    --------------------------------------------------
     9 * 9 = 81  9 * 8 = 72  9 * 7 = 63  9 * 6 = 54  9 * 5 = 45  9 * 4 = 36  9 * 3 = 27  9 * 2 = 18  9 * 1 =  9 
     8 * 8 = 64  8 * 7 = 56  8 * 6 = 48  8 * 5 = 40  8 * 4 = 32  8 * 3 = 24  8 * 2 = 16  8 * 1 =  8 
     7 * 7 = 49  7 * 6 = 42  7 * 5 = 35  7 * 4 = 28  7 * 3 = 21  7 * 2 = 14  7 * 1 =  7 
     6 * 6 = 36  6 * 5 = 30  6 * 4 = 24  6 * 3 = 18  6 * 2 = 12  6 * 1 =  6 
     5 * 5 = 25  5 * 4 = 20  5 * 3 = 15  5 * 2 = 10  5 * 1 =  5 
     4 * 4 = 16  4 * 3 = 12  4 * 2 =  8  4 * 1 =  4 
     3 * 3 =  9  3 * 2 =  6  3 * 1 =  3 
     2 * 2 =  4  2 * 1 =  2 
     1 * 1 =  1 
    
    
posted @   kyle_7Qc  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示