python基础 8.程序的组织结构
程序的组织结构
任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构三种基本结构组成
顺序结构
程序从上到下顺序执行代码,中间没有任何的判断和跳转,直到程序结束
1 2 3 4 | # ----------顺序结构---------- print ( "step1" ) print ( "step2" ) print ( "step3" ) |
选择结构
程序根据判断条件的布尔值选择执行部分代码
单分支结构
if 条件表达式:
执行语句
1 2 3 4 5 | # ----------分支结构---------- # 单分支 salary = 1000 if salary< 3000 : print ( "大学生" ) |
双分支结构
if 条件表达式:
执行语句
else:
执行语句
1 2 3 4 5 6 7 | # ----------分支结构---------- # 双分支 salary = 1000 if salary> 3000 : print ( "打工人" ) else : print ( "大学生" ) |
多分支结构
if 条件表达式:
执行语句
elif:
执行语句
else:
执行语句
1 2 3 4 5 6 7 8 9 | # ----------分支结构---------- # 多分支 salary = 1000 if salary> 20000 : print ( "老板" ) elif salary> 3000 : print ( "打工人" ) else : print ( "大学生" ) |
嵌套if
if 条件表达式:
if 条件表达式:
执行语句
else:
执行语句
else:
执行语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 嵌套if answer = input ( "请问您是否是会员?Y/N" ) if answer = = 'Y' : money = float ( input ( "请输入您的扣款金额" )) if money > 200 : money * = 0.8 elif money > 100 : money * = 0.9 print (money) elif answer = = 'N' : money = float ( input ( "请输入您的扣款金额" )) print (money) else : print ( "输入有误,请重新输入" ) |
条件表达式
1 2 3 | # 条件表达式 answer = input ( "请问您是否是会员?Y/N" ) print ( "您是会员" if answer = = 'Y' else "您不是会员" ) # 判断为Y,则执行判断前的语句,判断不为Y,则执行判断后的语句 |
pass空语句
语句什么都不执行,只是一个占位符,用在语法上需要语句的地方
1 2 3 4 5 6 7 8 9 | # ----------pass空语句---------- import sys answer = input ( "请问您是否是会员?Y/N" ) if answer = = 'Y' : pass else : print ( "您不是会员" ) sys.exit() print ( "您是会员" ) |
循环语句
反复做同一件事情的情况,称为循环
循环的分类:
while
for..in
选择结构的if与循环结构的while的区别
if是判断一次,条件为True执行一次
while是判断N+1次,条件为True执行N次
while循环
while 条件表达式:
循环语句
1 2 3 4 5 6 7 8 | # while语句 a = range ( 5 ) b = 0 while b in a: print (b) b + = 1 else : print ( "循环结束" ) |
1 2 3 4 5 6 | sum = 0 a = 0 while a in range ( 100 ): sum + = a a + = 2 print ( sum ) |
for..in循环
in表达从(字符串、序列等)中一次取值,又称遍历
for..in遍历对象必须是可迭代对象
for..in语法结构:
for 变量 in 迭代对象:
循环体
循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
1 2 | for a in range ( 5 ): print (a, end = "," ) |
1 2 3 4 | for a in range ( 100 , 1000 ): b, c, d = a / / 100 , (a / / 10 ) % 10 , a % 10 if b * * 3 + c * * 3 + d * * 3 = = a: print (a) |
break流程控制语句
用于结束循环结构,通常与分支结构if一起使用
1 2 3 4 5 6 7 8 9 10 11 12 | # # ----------break语句---------- for i in range ( 3 ): if i = = 2 : break print (i) a = 0 while a in range ( 5 ): if a = = 3 : print ( "6" ) break print (a) a + = 1 |
continue流程控制语句
用于结束当前循环,进入下一次循环,通常于分支结构if一起使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # ----------continue语句---------- for i in range ( 5 ): if i = = 2 : continue print (i) a = 0 sum = 0 while a in range ( 5 ): if a = = 3 : a + = 1 continue sum + = a a + = 1 print ( sum ) |
else语句
与else语句配合使用的三种情况:
if..else
|
if表达式不成立时执行else
|
while..else
|
没有碰到break时执行else
|
for..else
|
1 2 3 4 5 6 7 8 9 10 | # for..else.. for i in range ( 3 ): a = input ( "请输入:" ) if a = = 'a' : print ( "正确" ) break else : print ( "错误" ) else : print ( "三次错误" ) |
1 2 3 4 5 6 7 8 9 10 11 12 | # while..else.. a = 0 while a < 3 : b = input ( "请输入:" ) if b = = 'a' : print ( "对" ) break else : print ( "错" ) a + = 1 else : print ( "三次全错" ) |
嵌套循环
1 2 3 4 5 6 7 8 | for i in range ( 1 , 10 ): while i % 2 = = 0 : print (i * i) i + = 1 break else : print (i) i + = 1 |
1 2 3 4 5 | # 乘法表 for i in range ( 1 , 10 ): for j in range ( 1 , i + 1 ): print ( str (j) + '*' + str (i) + '=' + str (i * j), end = ' ' ) print () |
二重循环的break和continue
二重循环中的break和continue用于控制本层循环
1 2 3 4 5 6 7 | # 二重循环的break和continue for i in range ( 5 ): for j in range ( 1 , 11 ): if j % 2 = = 0 : break else : print (i) |
1 2 3 4 5 6 7 | for i in range ( 5 ): for j in range ( 1 , 11 ): if j % 2 = = 0 : continue else : print (j, end = ' ' ) print () |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报